Vehicle Detection Project

The goals / steps of this project are the following:

  • Perform a Histogram of Oriented Gradients (HOG) feature extraction on a labeled training set of images and train a classifier Linear SVM classifier

  • Optionally, you can also apply a color transform and append binned color features, as well as histograms of color, to your HOG feature vector.

  • Note: for those first two steps don't forget to normalize your features and randomize a selection for training and testing.

  • Implement a sliding-window technique and use your trained classifier to search for vehicles in images.

  • Run your pipeline on a video stream (start with the test_video.mp4 and later implement on full project_video.mp4) and create a heat map of recurring detections frame by frame to reject outliers and follow detected vehicles.

  • Estimate a bounding box for vehicles detected.

Note: for those first two steps don't forget to normalize your features and randomize a selection for training and testing.

Perform a Histogram of Oriented Gradients (HOG) feature extraction on a labeled training set of images and train a classifier Linear SVM classifier

In [78]:
## Tips:
# Make sure your images are scaled correctly
# The training dataset provided for this project 
# (vehicle and non-vehicle images) are in the .png format. 
# Somewhat confusingly, matplotlib image will read these in on a scale of 0 to 1, 
# but cv2.imread() will scale them from 0 to 255. 

# Be sure if you are switching between cv2.imread() 
# and matplotlib image for reading images that you scale them appropriately! 
# Otherwise your feature vectors can get screwed up.

# To add to the confusion, matplotlib image will read .jpg images in on a scale of 0 to 255 
# so if you are testing your pipeline on .jpg images remember to scale them accordingly. 
# And if you take an image that is scaled from 0 to 1 

# and change color spaces using cv2.cvtColor() 
# you'll get back an image scaled from 0 to 255. 
# So just be sure to be consistent between your training data features and inference features!

# image = mpimg.imread('vehicles/bbox-example-image.jpg') ## scale of 0-255 for .jpg, scale of 0-1 for .png
In [80]:
import sklearn
import skimage
print('The scikit-learn version: {}.'.format(sklearn.__version__))
print('The scikit-image version: {}.'.format(skimage.__version__))
The scikit-learn version: 0.18.2.
The scikit-image version: 0.13.0.
In [79]:
# ignore warnings
import warnings
warnings.filterwarnings('ignore')
In [81]:
# skimage libs
from skimage.feature import hog 
# sklearn libs
from sklearn.svm import LinearSVC # SVM 
from sklearn import tree # Decision tree
from sklearn.preprocessing import StandardScaler # data generalization
from sklearn.model_selection import train_test_split # for >= v0.18.
# label
from scipy.ndimage.measurements import label
# misc. libs
import numpy as np
import cv2
import glob
import pickle
# matplotlib
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
%matplotlib inline
In [5]:
car_images = glob.glob('trainingdataset/vehicles/**/*.png')
noncar_images = glob.glob('trainingdataset/non-vehicles/**/*.png')
print(len(car_images), len(noncar_images))
8792 8968
In [6]:
# data exploration

# car images
fig, ax = plt.subplots(6, 10, figsize=(16, 16))
fig.subplots_adjust(hspace = .025, wspace=.25)
ax = ax.ravel()
for idx in range(30):
    image = cv2.imread(car_images[np.random.randint(0,len(car_images))]) # scale of 0-255
    image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) # 0-255 scale
    ax[idx].axis('off')
    ax[idx].set_title('car', fontsize=12)
    ax[idx].imshow(image)

# noncar images
for idx in range(30,60):
    image = cv2.imread(noncar_images[np.random.randint(0,len(noncar_images))]) # scale of 0-255
    image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) # 0-255 scale
    ax[idx].axis('off')
    ax[idx].set_title('noncar', fontsize=12)
    ax[idx].imshow(image)
In [82]:
# Histogram of oriented gradients (HOG)
# Define a function to return HOG features and visualization
def get_hog_features(img, orient, pix_per_cell, cell_per_block, vis=False, feature_vec=True):
    if vis == True:
        # Use skimage.hog() to get both features and a visualization
        features, hog_image = hog(img, orientations=orient, pixels_per_cell=(pix_per_cell, pix_per_cell),
                                  cells_per_block=(cell_per_block, cell_per_block), transform_sqrt=False, 
                                  visualise=True, feature_vector=False)
        return features, hog_image
    else:      
        # Use skimage.hog() to get features only
        features = hog(img, orientations=orient, pixels_per_cell=(pix_per_cell, pix_per_cell),
                       cells_per_block=(cell_per_block, cell_per_block), transform_sqrt=False, 
                       visualise=False, feature_vector=feature_vec)
        return features
In [83]:
orient = 9 
pix_per_cell = 8
cell_per_block = 2

for idx in np.arange(5):
    # car
    img = cv2.imread(car_images[np.random.randint(0,len(car_images))])
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # Call our function with vis=True to see an image output
    features, hog_image = get_hog_features(gray, orient, pix_per_cell, cell_per_block, 
                            vis=True, feature_vec=False)

    # visualization
    f, (ax1, ax2) = plt.subplots(1, 2, figsize=(10,5))
    ax1.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    ax1.set_title('Car', fontsize=15)
    ax2.imshow(hog_image, cmap='gray')
    ax2.set_title('Car HOG Visualization', fontsize=15)        
    plt.show()


for idx in np.arange(5):
    # car
    img = cv2.imread(noncar_images[np.random.randint(0,len(noncar_images))])
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # Call our function with vis=True to see an image output
    features, hog_image = get_hog_features(gray, orient, pix_per_cell, cell_per_block, 
                            vis=True, feature_vec=False)
    
    # visualization
    f, (ax1, ax2) = plt.subplots(1, 2, figsize=(10,5))
    ax1.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    ax1.set_title('NonCar', fontsize=15)
    ax2.imshow(hog_image, cmap='gray')
    ax2.set_title('NonCar HOG', fontsize=15)        
    plt.show()

print(features.shape)
print(hog_image.shape)
(7, 7, 2, 2, 9)
(64, 64)

Apply a color transform and append binned color features, as well as histograms of color, to your HOG feature vector.

In [84]:
# # Define a function to compute binned color features  
# def bin_spatial(img, size=(32, 32)):
#     features = cv2.resize(img, size).ravel() # create the feature vector
#     return features

# # Define a function to compute color histogram features  
# def color_hist(img, nbins=32, bins_range=(0, 256)):
#     # Compute the histogram of the color channels separately
#     channel1_hist = np.histogram(img[:,:,0], bins=nbins, range=bins_range)
#     channel2_hist = np.histogram(img[:,:,1], bins=nbins, range=bins_range)
#     channel3_hist = np.histogram(img[:,:,2], bins=nbins, range=bins_range)
#     hist_features = np.concatenate((channel1_hist[0], channel2_hist[0], channel3_hist[0])) # Concatenate the histograms into a single feature vector
#     return hist_features

### Extract HOG features from an array.
def extract_features(imgs, cspace='RGB', spatial_size=(32, 32), orient=9, pix_per_cell=8, cell_per_block=2,
                         hist_bins=32, hist_range=(0, 256), hog_feature=True, hog_channel=0):
    
    features = [] # list to append feature vectors
    for eachimg in imgs: # Iterate through the list of images
        img = mpimg.imread(eachimg) # Read in each one by one
        if cspace != 'RGB': # apply color conversion if other than 'RGB'
            if cspace == 'HSV':
                feature_image = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
            elif cspace == 'HLS':
                feature_image = cv2.cvtColor(img, cv2.COLOR_RGB2HLS)
            elif cspace == 'LUV':
                feature_image = cv2.cvtColor(img, cv2.COLOR_RGB2LUV)
            elif cspace == 'YUV':
                feature_image = cv2.cvtColor(img, cv2.COLOR_RGB2YUV)
            elif cspace == 'YCrCb':
                feature_image = cv2.cvtColor(img, cv2.COLOR_RGB2YCrCb)
        else: feature_image = np.copy(img) 
        
        # HOG features (vis=False; features_vector=True)
        if hog_channel == 'ALL':
            hog_features = [] # list of hog features
            for channel in range(feature_image.shape[2]): # color channels
                hog_ft = get_hog_features(feature_image[:,:,channel], orient, pix_per_cell, cell_per_block, vis=False, feature_vec=True)
                hog_features.append(hog_ft)
            hog_features = np.ravel(hog_features)
        else:
            hog_features = get_hog_features(feature_image[:,:,hog_channel], orient, pix_per_cell, cell_per_block, vis=False, feature_vec=True)
        features.append(hog_features)
        
        ## Note: combining HOG+spatial+hist needs a powerful PC to run, otherwise, HOG is only used.
        ## Tried to combine three of them on Macbookpro, crashed!
        
        # spatial feature
        # if spatial_feature == True:
        
        # feature_spatial_color = bin_spatial(feature_image, size=spatial_size) # Apply bin_spatial() to get spatial color features
        # features.append(feature_spatial_color)
            
        # histogram feature
        # if hist_feature == True:    
        #     feature_histogram_color = color_hist(feature_image, nbins=hist_bins, bins_range=hist_range) # Apply color_hist() to get color histogram features
        #     features.append((feature_histogram_color))
            
        # features.append(np.concatenate(features))
    return features
In [76]:
import time
## feature extraction parameters exploration
color_space = ['RGB', 'HSV', 'HLS', 'LUV', 'YUV', 'YCrCb']
hog_channel = [2, 'ALL']
orient = [8, 11]
pix_per_cell = [8, 12, 16]
cell_per_block = 2

for eCS in color_space:
    for eHC in hog_channel:
        for eOR in orient:
            for ePX in pix_per_cell:
                print('>>>>')
                print('Color Space: ', eCS, '; HOG channel: ', eHC, '; Orient: ', eOR, '; Pix per cell: ', ePX,' ;')
                
                t = time.time()
                car_features = extract_features(car_images, cspace=eCS, spatial_size=(32, 32), orient=eOR, pix_per_cell=ePX, cell_per_block=cell_per_block, hist_bins=32, hist_range=(0, 256), hog_feature=True, hog_channel=eHC)
                noncar_features = extract_features(noncar_images, cspace=eCS, spatial_size=(32, 32), orient=eOR, pix_per_cell=ePX, cell_per_block=cell_per_block, hist_bins=32, hist_range=(0, 256), hog_feature=True, hog_channel=eHC)
                t1 = time.time()
                
                print('It takes', round(t1-t, 5), 'seconds to extract HOG features.')
                print('Car Features: ', len(car_features))
                print('NonCar Features: ', len(noncar_features))
                
    print('<<<<')
>>>>
Color Space:  RGB ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  8  ;
It takes 30.5448 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  12  ;
It takes 22.87939 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  16  ;
It takes 21.77754 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  8  ;
It takes 34.036 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  12  ;
It takes 23.02448 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  16  ;
It takes 22.21846 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  8  ;
It takes 71.31848 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  12  ;
It takes 49.66749 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  16  ;
It takes 45.88498 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  8  ;
It takes 75.53337 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  12  ;
It takes 62.8071 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  RGB ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  16  ;
It takes 59.53764 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
<<<<
>>>>
Color Space:  HSV ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  8  ;
It takes 31.24532 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  12  ;
It takes 22.53092 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  16  ;
It takes 21.72739 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  8  ;
It takes 30.96028 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  12  ;
It takes 23.11023 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  16  ;
It takes 22.52908 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  8  ;
It takes 74.14904 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  12  ;
It takes 50.25714 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  16  ;
It takes 47.83314 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  8  ;
It takes 76.50115 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  12  ;
It takes 944.93221 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HSV ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  16  ;
It takes 60.16057 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
<<<<
>>>>
Color Space:  HLS ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  8  ;
It takes 31.15222 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  12  ;
It takes 23.32326 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  16  ;
It takes 22.1619 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  8  ;
It takes 32.06209 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  12  ;
It takes 24.07181 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  16  ;
It takes 23.87908 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  8  ;
It takes 73.75597 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  12  ;
It takes 50.81686 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  16  ;
It takes 45.66461 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  8  ;
It takes 77.44444 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  12  ;
It takes 50.32718 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  HLS ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  16  ;
It takes 49.44808 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
<<<<
>>>>
Color Space:  LUV ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  8  ;
It takes 31.49909 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  12  ;
It takes 23.77771 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  16  ;
It takes 23.79319 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  8  ;
It takes 34.82909 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  12  ;
It takes 26.05469 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  16  ;
It takes 26.06044 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  8  ;
It takes 75.56331 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  12  ;
It takes 49.6141 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  16  ;
It takes 47.20092 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  8  ;
It takes 73.82762 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  12  ;
It takes 60.64072 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  LUV ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  16  ;
It takes 54.12637 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
<<<<
>>>>
Color Space:  YUV ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  8  ;
It takes 28.5655 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  12  ;
It takes 21.32812 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  16  ;
It takes 22.29023 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  8  ;
It takes 31.1985 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  12  ;
It takes 24.73312 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  16  ;
It takes 22.23977 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  8  ;
It takes 73.98175 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  12  ;
It takes 48.06844 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  16  ;
It takes 45.44458 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  8  ;
It takes 74.28496 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  12  ;
It takes 53.30763 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YUV ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  16  ;
It takes 46.96956 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
<<<<
>>>>
Color Space:  YCrCb ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  8  ;
It takes 29.37965 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  12  ;
It takes 24.49854 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  2 ; Orient:  8 ; Pix per cell:  16  ;
It takes 22.22448 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  8  ;
It takes 33.09982 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  12  ;
It takes 24.07404 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  2 ; Orient:  11 ; Pix per cell:  16  ;
It takes 22.83741 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  8  ;
It takes 76.33727 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  12  ;
It takes 51.09298 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  ALL ; Orient:  8 ; Pix per cell:  16  ;
It takes 47.65726 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  8  ;
It takes 80.50953 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  12  ;
It takes 56.51481 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
>>>>
Color Space:  YCrCb ; HOG channel:  ALL ; Orient:  11 ; Pix per cell:  16  ;
It takes 53.57784 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
<<<<
In [85]:
import time
## Extract the features
color_space = 'YUV' # RGB, HSV, HLS, LUV, YUV, YCrCb
hog_channel = 'ALL' # 0, 1, 2, ALL
orient = 11
pix_per_cell = 16
cell_per_block = 2

t = time.time()

car_features = extract_features(car_images, cspace=color_space, spatial_size=(32, 32), orient=orient, pix_per_cell=pix_per_cell, cell_per_block=cell_per_block, hist_bins=32, hist_range=(0, 256), hog_feature=True, hog_channel=hog_channel)
noncar_features = extract_features(noncar_images, cspace=color_space, spatial_size=(32, 32), orient=orient, pix_per_cell=pix_per_cell, cell_per_block=cell_per_block, hist_bins=32, hist_range=(0, 256), hog_feature=True, hog_channel=hog_channel)

t1 = time.time()

print('It takes', t1-t, 'seconds to extract HOG features.')
print('Car Features: ', len(car_features))
print('NonCar Features: ', len(noncar_features))
It takes 48.919174909591675 seconds to extract HOG features.
Car Features:  8792
NonCar Features:  8968
In [86]:
# features vector array
if (len(car_features)>0):
    X = np.vstack((car_features, noncar_features)).astype(np.float64)
    
    # in case of HOG + spatial + histogram
    #X_scaler = StandardScaler().fit(X) # Fit a per-column scaler: 
    #scaled_X = X_scaler.transform(X) # Apply the scaler to X

    # labels vector
    y = np.hstack(( np.ones(len(car_features)), np.zeros(len(noncar_features)) ))

    # splitting 80-20 and shuffling data
    rand_num = np.random.randint(0, len(car_images))
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=rand_num)
    
    # display
    print('Using orient: ', orient, '; pixel per cell: ', pix_per_cell, '; cell_per_block: ', cell_per_block)
    
    print('Features vector length of X_train: ', len(X_train))
    print('Features vector length of X_test: ', len(X_test))
    print('Features vector length of y_train: ', len(y_train))
    print('Features vector length of y_test: ', len(y_test))
    
else:
    print('Oops! Features size is empty!')
Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Features vector length of X_train:  14208
Features vector length of X_test:  3552
Features vector length of y_train:  14208
Features vector length of y_test:  3552
In [77]:
color_space = ['RGB', 'HSV', 'HLS', 'LUV', 'YUV', 'YCrCb']
hog_channel = [2, 'ALL']
orient = [8, 11]
pix_per_cell = [8, 12, 16]
cell_per_block = 2

for eCS in color_space:
    for eHC in hog_channel:
        for eOR in orient:
            for ePX in pix_per_cell:
                print('>>>>')
                print('color space: ', eCS, 'HOG: ', eHC, 'Using orient: ', eOR, '; pixel per cell: ', ePX, '; cell_per_block: ', cell_per_block)
                car_features = extract_features(car_images, cspace=eCS, spatial_size=(32, 32), orient=eOR, pix_per_cell=ePX, cell_per_block=cell_per_block, hist_bins=32, hist_range=(0, 256), hog_feature=True, hog_channel=eHC)
                noncar_features = extract_features(noncar_images, cspace=eCS, spatial_size=(32, 32), orient=eOR, pix_per_cell=ePX, cell_per_block=cell_per_block, hist_bins=32, hist_range=(0, 256), hog_feature=True, hog_channel=eHC)
                # features
                X = np.vstack((car_features, noncar_features)).astype(np.float64)
                # labels vector
                y = np.hstack(( np.ones(len(car_features)), np.zeros(len(noncar_features)) ))
                # splitting 80-20 and shuffling data
                rand_num = np.random.randint(0, len(car_images))
                X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=rand_num)
                
                # Training a classifier using SVM
                clf = LinearSVC() # create a classifier clf
                t1 = time.time() 
                clf.fit(X_train, y_train) # train a classifier clf
                t2 = time.time()
                print('Training a SVM classifier takes ', round(t2-t1, 5), 'seconds')
                print('Test accuracy: ', clf.score(X_test, y_test))
                
                t3 = time.time()
                num_pred = 20
                print('SVM prediction: ', clf.predict(X_test[0:num_pred]))
                print('For', num_pred, ' labels: ', y_test[0:num_pred])
                t4 = time.time()
                print(round(t4-t3, 5), 'seconds for predicting', num_pred, 'labels using SVM classification.')
    print('<<<<')
>>>>
color space:  RGB HOG:  2 Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  3.25232 seconds
Test accuracy:  0.961993243243
SVM prediction:  [ 0.  0.  0.  1.  0.  0.  1.  1.  1.  1.  0.  1.  0.  0.  1.  1.  1.  1.
  1.  1.]
For 20  labels:  [ 0.  0.  0.  1.  0.  0.  1.  1.  1.  1.  0.  0.  0.  0.  1.  1.  1.  1.
  1.  1.]
0.00199 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  2 Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.02382 seconds
Test accuracy:  0.947072072072
SVM prediction:  [ 0.  0.  0.  0.  0.  1.  0.  1.  1.  1.  1.  1.  1.  0.  1.  1.  0.  0.
  1.  1.]
For 20  labels:  [ 1.  0.  0.  0.  0.  1.  0.  1.  1.  1.  1.  1.  1.  0.  1.  1.  0.  0.
  1.  1.]
0.00158 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  2 Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.45906 seconds
Test accuracy:  0.94481981982
SVM prediction:  [ 0.  1.  0.  0.  0.  1.  1.  1.  1.  0.  1.  0.  0.  1.  0.  1.  0.  0.
  1.  0.]
For 20  labels:  [ 0.  1.  0.  0.  0.  1.  1.  1.  1.  0.  1.  0.  0.  1.  0.  1.  0.  0.
  1.  1.]
0.00159 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  2 Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  4.0344 seconds
Test accuracy:  0.962837837838
SVM prediction:  [ 1.  1.  0.  1.  0.  1.  0.  1.  1.  0.  1.  1.  0.  1.  1.  1.  1.  0.
  1.  1.]
For 20  labels:  [ 1.  1.  0.  1.  0.  1.  0.  1.  1.  0.  0.  1.  0.  1.  1.  1.  1.  0.
  1.  1.]
0.00146 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  2 Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.30958 seconds
Test accuracy:  0.95411036036
SVM prediction:  [ 0.  1.  1.  0.  1.  0.  0.  0.  0.  1.  1.  1.  1.  0.  1.  0.  1.  1.
  1.  0.]
For 20  labels:  [ 0.  1.  1.  0.  1.  0.  1.  0.  0.  1.  1.  1.  1.  0.  0.  0.  1.  1.
  1.  0.]
0.0015 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  2 Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.49196 seconds
Test accuracy:  0.947635135135
SVM prediction:  [ 0.  1.  0.  0.  0.  1.  1.  1.  0.  1.  0.  0.  1.  0.  0.  1.  1.  0.
  0.  0.]
For 20  labels:  [ 0.  1.  1.  0.  0.  1.  1.  1.  0.  1.  0.  0.  1.  0.  0.  1.  1.  0.
  0.  0.]
0.00127 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  ALL Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  16.71988 seconds
Test accuracy:  0.971283783784
SVM prediction:  [ 0.  1.  1.  0.  0.  1.  1.  1.  1.  1.  0.  1.  0.  0.  0.  1.  1.  1.
  0.  1.]
For 20  labels:  [ 0.  1.  1.  0.  0.  1.  1.  1.  1.  1.  0.  1.  0.  0.  0.  1.  1.  1.
  0.  1.]
0.00159 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  ALL Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  4.23094 seconds
Test accuracy:  0.964527027027
SVM prediction:  [ 0.  0.  1.  1.  1.  0.  1.  1.  1.  0.  0.  1.  0.  1.  1.  0.  0.  0.
  0.  0.]
For 20  labels:  [ 0.  0.  1.  1.  1.  0.  1.  1.  1.  0.  0.  1.  0.  1.  1.  0.  0.  1.
  0.  0.]
0.00181 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  ALL Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  1.90431 seconds
Test accuracy:  0.963400900901
SVM prediction:  [ 1.  0.  1.  1.  1.  0.  0.  1.  1.  1.  1.  1.  0.  1.  1.  0.  1.  1.
  1.  0.]
For 20  labels:  [ 1.  0.  1.  1.  0.  0.  0.  1.  1.  1.  1.  1.  0.  0.  1.  0.  1.  1.
  1.  0.]
0.00148 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  ALL Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  21.54367 seconds
Test accuracy:  0.97606981982
SVM prediction:  [ 0.  0.  0.  1.  0.  0.  1.  0.  1.  0.  0.  1.  1.  0.  1.  0.  1.  0.
  0.  0.]
For 20  labels:  [ 1.  0.  0.  1.  0.  0.  1.  0.  1.  1.  0.  1.  1.  0.  0.  0.  0.  0.
  0.  0.]
0.00167 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  ALL Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  6.1939 seconds
Test accuracy:  0.966216216216
SVM prediction:  [ 0.  1.  1.  0.  1.  1.  0.  0.  0.  1.  1.  0.  1.  1.  0.  1.  1.  1.
  1.  0.]
For 20  labels:  [ 1.  1.  1.  0.  1.  1.  0.  0.  0.  1.  1.  0.  1.  1.  0.  1.  1.  1.
  1.  0.]
0.00147 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  RGB HOG:  ALL Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  2.81912 seconds
Test accuracy:  0.959740990991
SVM prediction:  [ 0.  1.  0.  1.  1.  1.  0.  0.  1.  0.  0.  1.  0.  1.  1.  0.  1.  1.
  0.  0.]
For 20  labels:  [ 0.  1.  0.  1.  1.  1.  0.  0.  1.  0.  0.  1.  0.  1.  1.  0.  1.  1.
  0.  0.]
0.00154 seconds for predicting 20 labels using SVM classification.
<<<<
>>>>
color space:  HSV HOG:  2 Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  2.905 seconds
Test accuracy:  0.962274774775
SVM prediction:  [ 1.  0.  1.  1.  0.  1.  0.  0.  1.  1.  0.  0.  1.  1.  1.  0.  1.  0.
  0.  0.]
For 20  labels:  [ 1.  0.  1.  1.  0.  0.  0.  0.  1.  1.  0.  0.  1.  1.  1.  0.  1.  0.
  0.  0.]
0.00144 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  2 Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  0.79849 seconds
Test accuracy:  0.944538288288
SVM prediction:  [ 1.  0.  0.  0.  0.  1.  0.  1.  1.  0.  1.  0.  1.  0.  1.  1.  1.  0.
  0.  1.]
For 20  labels:  [ 1.  0.  0.  0.  0.  1.  0.  1.  1.  0.  1.  0.  1.  0.  1.  1.  1.  0.
  0.  1.]
0.00171 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  2 Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.46572 seconds
Test accuracy:  0.945664414414
SVM prediction:  [ 0.  0.  1.  1.  0.  1.  0.  0.  0.  0.  1.  0.  1.  1.  1.  0.  0.  0.
  1.  1.]
For 20  labels:  [ 0.  0.  1.  1.  0.  1.  0.  0.  0.  0.  1.  0.  1.  1.  1.  0.  0.  0.
  1.  1.]
0.00153 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  2 Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  4.47107 seconds
Test accuracy:  0.967905405405
SVM prediction:  [ 0.  0.  1.  1.  0.  0.  0.  0.  1.  0.  1.  0.  0.  0.  0.  1.  0.  1.
  1.  0.]
For 20  labels:  [ 0.  0.  1.  1.  0.  0.  0.  0.  1.  0.  1.  0.  0.  0.  0.  1.  0.  1.
  0.  0.]
0.00143 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  2 Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  0.97508 seconds
Test accuracy:  0.95579954955
SVM prediction:  [ 0.  0.  0.  1.  0.  1.  1.  0.  0.  1.  0.  0.  1.  0.  0.  1.  0.  1.
  0.  1.]
For 20  labels:  [ 0.  0.  0.  1.  0.  1.  1.  0.  0.  1.  0.  0.  1.  0.  0.  1.  0.  1.
  0.  1.]
0.00147 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  2 Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.52594 seconds
Test accuracy:  0.952984234234
SVM prediction:  [ 1.  0.  1.  0.  1.  0.  1.  1.  1.  1.  0.  1.  1.  1.  1.  0.  1.  1.
  1.  0.]
For 20  labels:  [ 1.  0.  0.  0.  1.  0.  1.  1.  1.  1.  0.  1.  1.  1.  1.  0.  1.  1.
  1.  0.]
0.00153 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  ALL Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  6.04484 seconds
Test accuracy:  0.97972972973
SVM prediction:  [ 1.  1.  0.  1.  0.  0.  1.  0.  0.  0.  1.  0.  1.  0.  1.  0.  0.  0.
  1.  1.]
For 20  labels:  [ 1.  1.  0.  1.  0.  0.  1.  0.  0.  0.  1.  0.  1.  0.  1.  0.  0.  0.
  1.  1.]
0.00156 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  ALL Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.91117 seconds
Test accuracy:  0.980574324324
SVM prediction:  [ 1.  1.  0.  0.  1.  1.  0.  1.  0.  0.  1.  0.  0.  0.  1.  1.  0.  0.
  1.  0.]
For 20  labels:  [ 1.  1.  0.  0.  1.  1.  0.  1.  0.  0.  1.  0.  0.  0.  1.  1.  0.  0.
  1.  0.]
0.00159 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  ALL Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.77001 seconds
Test accuracy:  0.980011261261
SVM prediction:  [ 0.  0.  1.  1.  1.  1.  0.  0.  0.  0.  1.  0.  1.  1.  0.  1.  0.  0.
  1.  1.]
For 20  labels:  [ 0.  0.  1.  1.  1.  1.  0.  1.  0.  0.  1.  0.  1.  1.  0.  1.  0.  0.
  1.  1.]
0.0014 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  ALL Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  11.37182 seconds
Test accuracy:  0.982263513514
SVM prediction:  [ 1.  1.  0.  0.  0.  1.  1.  1.  0.  0.  0.  0.  1.  0.  1.  0.  0.  1.
  0.  1.]
For 20  labels:  [ 1.  1.  0.  0.  0.  1.  1.  1.  0.  0.  0.  0.  1.  0.  1.  0.  0.  1.
  0.  1.]
0.00164 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  ALL Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  2.65571 seconds
Test accuracy:  0.982826576577
SVM prediction:  [ 0.  1.  0.  0.  1.  1.  0.  0.  0.  1.  0.  1.  0.  1.  1.  0.  0.  0.
  1.  0.]
For 20  labels:  [ 0.  1.  0.  0.  1.  1.  0.  0.  0.  1.  0.  1.  0.  1.  1.  0.  0.  0.
  1.  0.]
0.00245 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HSV HOG:  ALL Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  1.09589 seconds
Test accuracy:  0.978885135135
SVM prediction:  [ 1.  0.  0.  1.  1.  0.  1.  0.  0.  0.  0.  1.  1.  1.  1.  1.  0.  1.
  0.  1.]
For 20  labels:  [ 1.  0.  0.  1.  1.  0.  1.  0.  0.  0.  0.  1.  1.  1.  1.  1.  1.  1.
  0.  1.]
0.00169 seconds for predicting 20 labels using SVM classification.
<<<<
>>>>
color space:  HLS HOG:  2 Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  6.2063 seconds
Test accuracy:  0.917792792793
SVM prediction:  [ 1.  1.  1.  1.  0.  0.  0.  0.  1.  0.  0.  0.  1.  1.  0.  1.  1.  0.
  0.  0.]
For 20  labels:  [ 1.  1.  1.  1.  0.  0.  0.  0.  1.  0.  0.  0.  1.  1.  0.  1.  1.  0.
  0.  0.]
0.00146 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  2 Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.11021 seconds
Test accuracy:  0.870777027027
SVM prediction:  [ 0.  0.  0.  0.  1.  0.  0.  0.  1.  0.  0.  1.  1.  1.  0.  0.  0.  0.
  0.  0.]
For 20  labels:  [ 0.  0.  0.  0.  1.  1.  0.  1.  1.  0.  0.  0.  1.  1.  0.  0.  0.  0.
  0.  0.]
0.00149 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  2 Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.56766 seconds
Test accuracy:  0.866554054054
SVM prediction:  [ 1.  0.  0.  1.  1.  0.  0.  0.  1.  0.  1.  0.  1.  0.  1.  1.  0.  0.
  0.  1.]
For 20  labels:  [ 1.  1.  0.  1.  1.  0.  0.  0.  0.  0.  1.  0.  1.  0.  0.  1.  0.  0.
  0.  1.]
0.00142 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  2 Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  6.9495 seconds
Test accuracy:  0.914977477477
SVM prediction:  [ 1.  0.  1.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  1.  1.  0.  0.
  1.  1.]
For 20  labels:  [ 1.  0.  1.  1.  0.  0.  0.  0.  0.  0.  1.  0.  1.  0.  1.  1.  0.  0.
  1.  1.]
0.00135 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  2 Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.65925 seconds
Test accuracy:  0.867961711712
SVM prediction:  [ 1.  0.  0.  0.  1.  1.  0.  0.  1.  0.  0.  1.  0.  1.  0.  1.  1.  0.
  1.  0.]
For 20  labels:  [ 1.  0.  0.  0.  1.  1.  1.  1.  1.  0.  0.  1.  0.  1.  1.  1.  0.  0.
  1.  0.]
0.00146 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  2 Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.62948 seconds
Test accuracy:  0.882601351351
SVM prediction:  [ 1.  1.  1.  0.  0.  0.  0.  0.  1.  0.  1.  0.  1.  0.  1.  0.  0.  1.
  0.  0.]
For 20  labels:  [ 1.  1.  1.  0.  0.  0.  0.  0.  1.  0.  1.  0.  1.  0.  1.  0.  0.  1.
  0.  0.]
0.00179 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  ALL Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  6.51718 seconds
Test accuracy:  0.981418918919
SVM prediction:  [ 1.  0.  1.  1.  1.  0.  0.  0.  1.  1.  1.  1.  0.  1.  1.  1.  0.  1.
  0.  1.]
For 20  labels:  [ 1.  0.  1.  1.  1.  0.  0.  0.  1.  1.  1.  1.  0.  1.  1.  1.  0.  1.
  0.  1.]
0.00156 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  ALL Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.9199 seconds
Test accuracy:  0.976632882883
SVM prediction:  [ 0.  1.  1.  1.  0.  1.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  1.  1.
  1.  0.]
For 20  labels:  [ 0.  1.  1.  1.  0.  1.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  1.  1.
  1.  0.]
0.0015 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  ALL Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.87492 seconds
Test accuracy:  0.97972972973
SVM prediction:  [ 1.  1.  0.  1.  0.  0.  1.  1.  1.  1.  0.  1.  1.  1.  1.  0.  1.  0.
  0.  0.]
For 20  labels:  [ 1.  1.  0.  1.  0.  0.  1.  1.  1.  1.  0.  1.  1.  1.  1.  0.  1.  0.
  0.  0.]
0.00154 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  ALL Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  9.34156 seconds
Test accuracy:  0.981418918919
SVM prediction:  [ 1.  0.  0.  0.  0.  0.  0.  1.  1.  1.  1.  0.  1.  0.  0.  0.  1.  0.
  1.  1.]
For 20  labels:  [ 1.  0.  0.  0.  0.  0.  0.  1.  1.  1.  1.  0.  1.  0.  0.  0.  1.  0.
  1.  1.]
0.00151 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  ALL Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  2.47415 seconds
Test accuracy:  0.976914414414
SVM prediction:  [ 0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  1.  0.  0.
  1.  0.]
For 20  labels:  [ 0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  1.  0.  0.
  1.  0.]
0.00172 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  HLS HOG:  ALL Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  1.26524 seconds
Test accuracy:  0.971846846847
SVM prediction:  [ 1.  1.  0.  0.  0.  0.  0.  1.  1.  1.  0.  1.  0.  0.  1.  0.  1.  1.
  1.  0.]
For 20  labels:  [ 1.  1.  0.  0.  0.  0.  0.  1.  1.  1.  0.  1.  0.  0.  1.  0.  0.  1.
  1.  0.]
0.00161 seconds for predicting 20 labels using SVM classification.
<<<<
>>>>
color space:  LUV HOG:  2 Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  5.04221 seconds
Test accuracy:  0.915259009009
SVM prediction:  [ 0.  0.  0.  1.  1.  1.  1.  0.  0.  1.  0.  1.  1.  0.  0.  0.  1.  0.
  1.  1.]
For 20  labels:  [ 0.  0.  0.  0.  0.  1.  0.  0.  0.  1.  0.  1.  1.  1.  0.  0.  1.  0.
  1.  1.]
0.00142 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  2 Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.01682 seconds
Test accuracy:  0.905686936937
SVM prediction:  [ 0.  0.  1.  1.  0.  0.  0.  0.  1.  0.  0.  0.  0.  1.  0.  1.  1.  0.
  0.  0.]
For 20  labels:  [ 0.  0.  1.  1.  0.  0.  0.  0.  1.  0.  0.  0.  1.  1.  0.  0.  1.  0.
  0.  0.]
0.0015 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  2 Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.43014 seconds
Test accuracy:  0.894707207207
SVM prediction:  [ 0.  0.  0.  0.  0.  1.  0.  0.  0.  1.  0.  0.  1.  1.  1.  1.  0.  1.
  1.  0.]
For 20  labels:  [ 1.  0.  0.  0.  0.  1.  1.  0.  0.  1.  0.  0.  1.  1.  1.  1.  0.  0.
  0.  0.]
0.00153 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  2 Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  6.03426 seconds
Test accuracy:  0.918637387387
SVM prediction:  [ 1.  0.  0.  0.  0.  0.  1.  1.  1.  0.  0.  0.  1.  1.  0.  0.  1.  1.
  0.  0.]
For 20  labels:  [ 1.  0.  0.  0.  0.  0.  1.  0.  1.  0.  1.  0.  1.  1.  0.  0.  1.  1.
  0.  0.]
0.00173 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  2 Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.26704 seconds
Test accuracy:  0.913288288288
SVM prediction:  [ 1.  0.  1.  1.  0.  0.  0.  1.  1.  1.  0.  1.  1.  1.  0.  1.  0.  0.
  0.  0.]
For 20  labels:  [ 1.  0.  1.  1.  0.  0.  0.  1.  1.  1.  0.  1.  1.  1.  0.  1.  0.  0.
  0.  0.]
0.00141 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  2 Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.6044 seconds
Test accuracy:  0.908220720721
SVM prediction:  [ 1.  0.  0.  1.  0.  1.  1.  0.  0.  1.  1.  0.  1.  0.  1.  0.  0.  0.
  0.  1.]
For 20  labels:  [ 1.  0.  0.  1.  0.  1.  1.  0.  0.  1.  1.  0.  1.  0.  0.  0.  1.  0.
  0.  1.]
0.00148 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  ALL Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  9.18553 seconds
Test accuracy:  0.969594594595
SVM prediction:  [ 0.  0.  1.  1.  0.  1.  0.  1.  0.  1.  0.  0.  1.  0.  1.  1.  0.  1.
  1.  1.]
For 20  labels:  [ 0.  0.  1.  1.  0.  1.  0.  1.  0.  1.  0.  0.  1.  0.  1.  1.  0.  1.
  1.  1.]
0.00157 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  ALL Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  2.21565 seconds
Test accuracy:  0.974380630631
SVM prediction:  [ 1.  0.  0.  0.  0.  0.  0.  1.  1.  1.  0.  1.  1.  1.  0.  0.  0.  0.
  0.  0.]
For 20  labels:  [ 1.  0.  0.  1.  0.  0.  0.  1.  1.  1.  0.  1.  1.  1.  0.  0.  0.  0.
  0.  0.]
0.00181 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  ALL Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  1.39191 seconds
Test accuracy:  0.969313063063
SVM prediction:  [ 1.  1.  1.  0.  1.  0.  0.  1.  0.  0.  0.  0.  0.  1.  0.  1.  1.  1.
  1.  1.]
For 20  labels:  [ 1.  1.  1.  0.  1.  0.  0.  1.  0.  0.  0.  0.  0.  1.  0.  1.  1.  1.
  1.  1.]
0.00145 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  ALL Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  13.68493 seconds
Test accuracy:  0.981418918919
SVM prediction:  [ 0.  1.  0.  0.  0.  1.  1.  1.  0.  1.  0.  1.  0.  0.  0.  0.  1.  0.
  1.  1.]
For 20  labels:  [ 0.  1.  0.  0.  0.  1.  1.  1.  0.  1.  0.  1.  0.  0.  0.  0.  1.  0.
  1.  1.]
0.00187 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  ALL Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  2.3918 seconds
Test accuracy:  0.974662162162
SVM prediction:  [ 1.  0.  1.  0.  0.  0.  0.  0.  1.  0.  1.  1.  1.  1.  1.  1.  1.  0.
  0.  1.]
For 20  labels:  [ 1.  0.  1.  0.  0.  0.  0.  0.  1.  0.  1.  1.  1.  1.  1.  1.  1.  0.
  0.  1.]
0.00152 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  LUV HOG:  ALL Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  1.0847 seconds
Test accuracy:  0.973536036036
SVM prediction:  [ 1.  1.  1.  0.  0.  1.  0.  1.  1.  1.  1.  1.  1.  0.  0.  0.  1.  1.
  0.  1.]
For 20  labels:  [ 1.  1.  1.  0.  0.  1.  0.  1.  1.  1.  1.  1.  1.  0.  0.  0.  1.  1.
  0.  1.]
0.00146 seconds for predicting 20 labels using SVM classification.
<<<<
>>>>
color space:  YUV HOG:  2 Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  3.80079 seconds
Test accuracy:  0.927646396396
SVM prediction:  [ 1.  1.  0.  1.  1.  1.  0.  1.  1.  0.  1.  0.  1.  0.  0.  0.  0.  1.
  1.  0.]
For 20  labels:  [ 1.  1.  0.  1.  1.  1.  0.  1.  1.  1.  1.  0.  1.  0.  1.  0.  0.  1.
  1.  0.]
0.00149 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  2 Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  0.87636 seconds
Test accuracy:  0.911599099099
SVM prediction:  [ 0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  1.  0.  0.  1.  1.  1.  0.  0.
  1.  0.]
For 20  labels:  [ 0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  1.  0.  0.  1.  1.  0.  1.  0.
  1.  0.]
0.00283 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  2 Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.32852 seconds
Test accuracy:  0.918355855856
SVM prediction:  [ 1.  1.  0.  0.  0.  0.  0.  0.  1.  1.  0.  1.  0.  1.  1.  1.  0.  1.
  0.  0.]
For 20  labels:  [ 1.  1.  0.  0.  0.  0.  0.  0.  1.  1.  0.  1.  0.  1.  1.  1.  0.  1.
  0.  0.]
0.00147 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  2 Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  5.66608 seconds
Test accuracy:  0.930461711712
SVM prediction:  [ 1.  1.  0.  1.  0.  1.  0.  1.  1.  0.  1.  1.  0.  0.  0.  0.  1.  0.
  1.  0.]
For 20  labels:  [ 1.  1.  0.  1.  0.  1.  1.  1.  1.  0.  1.  1.  0.  0.  0.  0.  1.  0.
  1.  0.]
0.00165 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  2 Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.33274 seconds
Test accuracy:  0.914977477477
SVM prediction:  [ 0.  1.  1.  0.  0.  1.  1.  1.  1.  0.  1.  1.  1.  0.  1.  1.  0.  1.
  1.  1.]
For 20  labels:  [ 0.  1.  1.  1.  0.  1.  1.  1.  1.  0.  1.  1.  1.  0.  1.  0.  0.  1.
  1.  1.]
0.00142 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  2 Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.56196 seconds
Test accuracy:  0.919763513514
SVM prediction:  [ 0.  0.  0.  0.  0.  1.  1.  1.  1.  0.  0.  1.  0.  0.  0.  0.  1.  1.
  1.  1.]
For 20  labels:  [ 0.  0.  0.  0.  0.  1.  1.  1.  1.  0.  0.  1.  0.  0.  0.  0.  1.  1.
  1.  1.]
0.00141 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  ALL Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  5.16288 seconds
Test accuracy:  0.983952702703
SVM prediction:  [ 1.  1.  1.  1.  1.  1.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  1.  0.
  0.  0.]
For 20  labels:  [ 1.  1.  1.  1.  1.  1.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  1.  0.
  0.  0.]
0.00154 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  ALL Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.66461 seconds
Test accuracy:  0.98170045045
SVM prediction:  [ 0.  0.  1.  1.  1.  0.  0.  0.  0.  0.  1.  1.  0.  1.  1.  1.  1.  1.
  1.  1.]
For 20  labels:  [ 0.  0.  1.  1.  1.  0.  0.  0.  0.  0.  1.  1.  0.  1.  1.  1.  1.  1.
  1.  1.]
0.0014 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  ALL Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.81516 seconds
Test accuracy:  0.981981981982
SVM prediction:  [ 0.  1.  1.  1.  0.  1.  1.  1.  0.  1.  0.  0.  0.  1.  0.  1.  0.  0.
  0.  0.]
For 20  labels:  [ 0.  1.  1.  1.  0.  1.  1.  1.  0.  1.  0.  0.  0.  1.  0.  1.  0.  0.
  0.  0.]
0.00148 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  ALL Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  8.25317 seconds
Test accuracy:  0.987894144144
SVM prediction:  [ 1.  0.  1.  0.  1.  0.  1.  0.  0.  1.  1.  1.  1.  1.  1.  1.  0.  1.
  0.  1.]
For 20  labels:  [ 1.  0.  1.  0.  1.  0.  1.  0.  0.  1.  1.  1.  1.  1.  1.  1.  0.  1.
  0.  1.]
0.00165 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  ALL Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  2.20205 seconds
Test accuracy:  0.978885135135
SVM prediction:  [ 0.  0.  1.  0.  0.  0.  0.  0.  1.  0.  1.  1.  0.  0.  0.  1.  1.  0.
  1.  1.]
For 20  labels:  [ 0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  1.  1.  0.  0.  0.  1.  1.  0.
  1.  1.]
0.00144 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YUV HOG:  ALL Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  1.10413 seconds
Test accuracy:  0.984234234234
SVM prediction:  [ 1.  1.  0.  0.  0.  1.  0.  1.  1.  1.  0.  0.  0.  0.  1.  1.  1.  0.
  1.  0.]
For 20  labels:  [ 1.  1.  0.  0.  0.  1.  0.  1.  1.  1.  0.  0.  0.  0.  1.  1.  1.  0.
  1.  0.]
0.00165 seconds for predicting 20 labels using SVM classification.
<<<<
>>>>
color space:  YCrCb HOG:  2 Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  3.79404 seconds
Test accuracy:  0.933277027027
SVM prediction:  [ 0.  1.  1.  1.  0.  0.  1.  0.  0.  0.  1.  1.  1.  0.  0.  0.  1.  0.
  0.  1.]
For 20  labels:  [ 0.  1.  1.  1.  0.  0.  1.  0.  0.  0.  1.  1.  1.  0.  0.  0.  1.  0.
  0.  1.]
0.00148 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  2 Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  0.90754 seconds
Test accuracy:  0.924268018018
SVM prediction:  [ 0.  1.  1.  0.  1.  1.  1.  1.  1.  0.  1.  1.  0.  1.  1.  0.  0.  0.
  0.  0.]
For 20  labels:  [ 0.  1.  1.  0.  1.  1.  1.  1.  1.  0.  1.  1.  0.  1.  1.  0.  0.  1.
  0.  0.]
0.00182 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  2 Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.43846 seconds
Test accuracy:  0.921734234234
SVM prediction:  [ 0.  0.  0.  0.  0.  1.  0.  0.  0.  1.  0.  1.  1.  0.  0.  1.  0.  1.
  1.  1.]
For 20  labels:  [ 1.  1.  0.  0.  0.  1.  0.  0.  0.  1.  0.  1.  1.  0.  0.  1.  0.  1.
  1.  1.]
0.00147 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  2 Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  6.1774 seconds
Test accuracy:  0.938344594595
SVM prediction:  [ 1.  1.  0.  1.  0.  1.  0.  0.  0.  1.  0.  0.  1.  1.  1.  0.  1.  0.
  0.  0.]
For 20  labels:  [ 1.  1.  0.  1.  0.  1.  0.  0.  1.  1.  0.  0.  1.  1.  1.  0.  0.  0.
  0.  0.]
0.00208 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  2 Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.26392 seconds
Test accuracy:  0.924831081081
SVM prediction:  [ 1.  0.  1.  0.  0.  0.  1.  0.  0.  1.  0.  0.  1.  0.  1.  0.  0.  0.
  1.  0.]
For 20  labels:  [ 1.  0.  1.  0.  0.  0.  1.  0.  1.  1.  0.  0.  1.  0.  1.  0.  0.  0.
  1.  0.]
0.00145 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  2 Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.54743 seconds
Test accuracy:  0.918355855856
SVM prediction:  [ 0.  1.  1.  0.  0.  0.  1.  1.  0.  0.  1.  1.  1.  0.  0.  1.  0.  0.
  1.  1.]
For 20  labels:  [ 1.  1.  1.  1.  0.  0.  1.  1.  0.  0.  1.  1.  1.  0.  0.  1.  0.  0.
  1.  1.]
0.00188 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  ALL Using orient:  8 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  5.5966 seconds
Test accuracy:  0.978603603604
SVM prediction:  [ 1.  1.  1.  0.  0.  1.  0.  0.  1.  0.  1.  0.  1.  1.  0.  1.  1.  0.
  0.  0.]
For 20  labels:  [ 1.  1.  1.  0.  0.  1.  0.  0.  1.  0.  1.  0.  1.  1.  0.  1.  1.  0.
  0.  0.]
0.00188 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  ALL Using orient:  8 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  1.909 seconds
Test accuracy:  0.98170045045
SVM prediction:  [ 0.  0.  1.  1.  0.  0.  0.  1.  1.  0.  1.  0.  1.  0.  1.  1.  1.  0.
  1.  1.]
For 20  labels:  [ 0.  0.  1.  1.  0.  0.  0.  1.  1.  0.  1.  0.  1.  0.  1.  1.  1.  0.
  1.  1.]
0.00156 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  ALL Using orient:  8 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  0.94379 seconds
Test accuracy:  0.98338963964
SVM prediction:  [ 1.  0.  0.  1.  1.  0.  0.  0.  1.  1.  0.  1.  1.  1.  0.  1.  1.  0.
  1.  0.]
For 20  labels:  [ 1.  0.  0.  1.  1.  0.  0.  0.  1.  1.  0.  1.  1.  0.  0.  1.  1.  0.
  1.  0.]
0.00145 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  ALL Using orient:  11 ; pixel per cell:  8 ; cell_per_block:  2
Training a SVM classifier takes  9.35322 seconds
Test accuracy:  0.98338963964
SVM prediction:  [ 0.  0.  1.  1.  1.  1.  0.  1.  0.  1.  0.  1.  0.  0.  0.  1.  1.  1.
  0.  0.]
For 20  labels:  [ 0.  0.  1.  1.  1.  1.  0.  1.  0.  1.  0.  1.  0.  0.  0.  1.  1.  1.
  0.  0.]
0.0016 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  ALL Using orient:  11 ; pixel per cell:  12 ; cell_per_block:  2
Training a SVM classifier takes  2.49796 seconds
Test accuracy:  0.978603603604
SVM prediction:  [ 0.  1.  1.  1.  0.  0.  0.  0.  1.  1.  0.  0.  1.  1.  1.  0.  0.  0.
  0.  0.]
For 20  labels:  [ 0.  1.  1.  1.  0.  0.  0.  0.  1.  1.  0.  0.  1.  1.  1.  1.  0.  0.
  0.  0.]
0.00151 seconds for predicting 20 labels using SVM classification.
>>>>
color space:  YCrCb HOG:  ALL Using orient:  11 ; pixel per cell:  16 ; cell_per_block:  2
Training a SVM classifier takes  1.03799 seconds
Test accuracy:  0.98338963964
SVM prediction:  [ 0.  1.  1.  0.  1.  0.  0.  1.  0.  1.  0.  0.  0.  0.  0.  0.  1.  0.
  1.  1.]
For 20  labels:  [ 0.  1.  1.  0.  0.  0.  0.  1.  0.  1.  0.  0.  0.  0.  0.  0.  1.  0.
  1.  1.]
0.00143 seconds for predicting 20 labels using SVM classification.
<<<<
In [142]:
# color_space = 'YUV' # RGB, HSV, HLS, LUV, YUV, YCrCb
# hog_channel = 'ALL' # 0, 1, 2, ALL
# orient = 11
# pix_per_cell = 16
# cell_per_block = 2

# Training a classifier using SVM
clf = LinearSVC() # create a classifier clf
t1 = time.time() 
clf.fit(X_train, y_train) # train a classifier clf
t2 = time.time()
print('Training a SVM classifier takes ', round(t2-t1, 5), 'seconds')

print('Test accuracy: ', clf.score(X_test, y_test))

t3 = time.time()
num_pred = 15
print('SVM prediction: ', clf.predict(X_test[0:num_pred]))
print('For', num_pred, ' labels: ', y_test[0:num_pred])
t4 = time.time()
print(round(t4-t3, 5), 'seconds for predicting', num_pred, 'labels using SVM classification.')
Training a SVM classifier takes  1.00209 seconds
Test accuracy:  0.98338963964
SVM prediction:  [ 0.  1.  0.  0.  1.  1.  0.  0.  1.  1.  0.  1.  1.  0.  1.]
For 15  labels:  [ 0.  1.  0.  0.  1.  1.  0.  0.  1.  1.  0.  1.  1.  0.  1.]
0.0016 seconds for predicting 15 labels using SVM classification.
In [16]:
# Training a classifier using Decision Tree
from sklearn import tree
# tree.DecisionTreeClassifier(max_depth=3, min_samples_split=50)
clf_dt = tree.DecisionTreeClassifier() # create a classifier

t5= time.time()
clf_dt.fit(X_train, y_train) # train a classifier
t6 = time.time()
print('Training a decision tree classifier takes ', round(t6-t5, 5), 'seconds')
print('Test accuracy: ', clf_dt.score(X_test, y_test))

t7 = time.time()
num_pred = 15
print('Decision Tree prediction: ', clf_dt.predict(X_test[0:num_pred]))
print('For', num_pred, ' labels: ', y_test[0:num_pred])
t8 = time.time()
print(round(t8-t7, 5), 'seconds for predicting', num_pred, 'labels using Decision Tree classification.')
Training a decision tree classifier takes  43.72119 seconds
Test accuracy:  0.915540540541
Decision Tree prediction:  [ 1.  0.  0.  0.  0.  1.  0.  0.  1.  1.  1.  0.  1.  0.  1.]
For 15  labels:  [ 1.  0.  0.  0.  0.  1.  0.  0.  1.  0.  1.  0.  0.  0.  1.]
0.00219 seconds for predicting 15 labels using Decision Tree classification.
In [ ]:
 
In [17]:
# Training a classifier using Decision Tree
clf_dtm = tree.DecisionTreeClassifier(max_depth=40, min_samples_split=15) # create a classifier

t5= time.time()
clf_dtm.fit(X_train, y_train) # train a classifier
t6 = time.time()
print('Training a decision tree classifier takes ', round(t6-t5, 5), 'seconds')
print('Test accuracy: ', clf_dtm.score(X_test, y_test))

t7 = time.time()
num_pred = 15
print('Decision Tree prediction: ', clf_dtm.predict(X_test[0:num_pred]))
print('For', num_pred, ' labels: ', y_test[0:num_pred])
t8 = time.time()
print(round(t8-t7, 5), 'seconds for predicting', num_pred, 'labels using Decision Tree classification.')
Training a decision tree classifier takes  44.43737 seconds
Test accuracy:  0.915259009009
Decision Tree prediction:  [ 1.  0.  0.  0.  0.  1.  0.  0.  1.  1.  1.  0.  1.  0.  1.]
For 15  labels:  [ 1.  0.  0.  0.  0.  1.  0.  0.  1.  0.  1.  0.  0.  0.  1.]
0.00168 seconds for predicting 15 labels using Decision Tree classification.
In [19]:
# Linear Regression
from sklearn import linear_model
from sklearn.metrics import mean_squared_error, r2_score
clf_lr = linear_model.LinearRegression()
t1 = time.time()
clf_lr.fit(X_train, y_train)
t2 = time.time()
print('Training a linear regression classifier takes ', round(t2-t1, 5), 'seconds')
print('Test accuracy: ', clf_lr.score(X_test, y_test))
t3 = time.time()
num_pred = 15
print('Linear regression prediction: ', clf_lr.predict(X_test[0:num_pred]))
print('For', num_pred, ' labels: ', y_test[0:num_pred])
t4 = time.time()
print(round(t4-t3, 5), 'seconds for predicting', num_pred, 'labels using Linear Regression classification.')
Training a linear regression classifier takes  2.28223 seconds
Test accuracy:  0.38728358465
Linear regression prediction:  [ 0.845203   -0.07876619  0.19880658 -0.07277401  0.28309232  0.98238813
 -0.32340351 -0.1095757   1.1156392   0.15911929  0.95373376 -0.31582493
  0.8806916   0.08380865  0.81127077]
For 15  labels:  [ 1.  0.  0.  0.  0.  1.  0.  0.  1.  0.  1.  0.  0.  0.  1.]
0.00162 seconds for predicting 15 labels using Linear Regression classification.

Implement a sliding-window technique and use your trained classifier to search for vehicles in images.

In [143]:
# Define a single function that can extract features using hog sub-sampling and make predictions
def find_cars(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, all_rectangles=False):
    
    objboxes = [] # list to store rectangle arrays of detected objects
    img = img.astype(np.float32)/255 # scale of 0-255.
    img_tosearch = img[ystart:ystop,:,:]
    
    if cspace != 'RGB': # apply color conversion if other than 'RGB'
        if cspace == 'HSV':
            ctrans_tosearch = cv2.cvtColor(img_tosearch, cv2.COLOR_RGB2HSV)
        elif cspace == 'HLS':
            ctrans_tosearch = cv2.cvtColor(img_tosearch, cv2.COLOR_RGB2HLS)
        elif cspace == 'LUV':
            ctrans_tosearch = cv2.cvtColor(img_tosearch, cv2.COLOR_RGB2LUV)
        elif cspace == 'YUV':
            ctrans_tosearch = cv2.cvtColor(img_tosearch, cv2.COLOR_RGB2YUV)
        elif cspace == 'YCrCb':
            ctrans_tosearch = cv2.cvtColor(img_tosearch, cv2.COLOR_RGB2YCrCb)
    else: ctrans_tosearch = np.copy(img) 
        
    if scale != 1:
        imshape = ctrans_tosearch.shape
        ctrans_tosearch = cv2.resize(ctrans_tosearch, (np.int(imshape[1]/scale), np.int(imshape[0]/scale)))
    
    if hog_channel == 'ALL':    
        ch1 = ctrans_tosearch[:,:,0]
        ch2 = ctrans_tosearch[:,:,1]
        ch3 = ctrans_tosearch[:,:,2]
    else:
        ch1 = ctrans_tosearch[:,:,hog_channel]
    
    # Define blocks and steps as above
    #nxblocks = (ch1.shape[1] // pix_per_cell) - cell_per_block + 1 
    #nyblocks = (ch1.shape[0] // pix_per_cell) - cell_per_block + 1 
    nxblocks = (ch1.shape[1] // pix_per_cell) + 1 # remove (-cell_per_block), 
    nyblocks = (ch1.shape[0] // pix_per_cell) + 1 
    nfeat_per_block = orient*cell_per_block**2
    
    # 64 was the orginal sampling rate, with 8 cells and 8 pix per cell
    window = 64
    #nblocks_per_window = (window // pix_per_cell) - cell_per_block + 1
    nblocks_per_window = (window // pix_per_cell) - 1 # remove cell_per_block
    cells_per_step = 2  # Instead of overlap, define how many cells to step
    nxsteps = (nxblocks - nblocks_per_window) // cells_per_step
    nysteps = (nyblocks - nblocks_per_window) // cells_per_step
    
    # Compute individual channel HOG features for the entire image
    hog1 = get_hog_features(ch1, orient, pix_per_cell, cell_per_block, feature_vec=False)
    if hog_channel=='ALL':
        hog2 = get_hog_features(ch2, orient, pix_per_cell, cell_per_block, feature_vec=False)
        hog3 = get_hog_features(ch3, orient, pix_per_cell, cell_per_block, feature_vec=False)
    
    for xb in range(nxsteps):
        for yb in range(nysteps):
            ypos = yb*cells_per_step
            xpos = xb*cells_per_step
            # Extract HOG for this patch
            hog_feat1 = hog1[ypos:ypos+nblocks_per_window, xpos:xpos+nblocks_per_window].ravel() 
            if hog_channel=='ALL':
                hog_feat2 = hog2[ypos:ypos+nblocks_per_window, xpos:xpos+nblocks_per_window].ravel() 
                hog_feat3 = hog3[ypos:ypos+nblocks_per_window, xpos:xpos+nblocks_per_window].ravel() 
                hog_features = np.hstack((hog_feat1, hog_feat2, hog_feat3))
            else:
                hog_features = hog_feat1

            xleft = xpos*pix_per_cell
            ytop = ypos*pix_per_cell

            ##### FOR BINNING SPATIAL COLOR AND HISTOGRAM COLOR.
            ## Extract the image patch
            #subimg = cv2.resize(ctrans_tosearch[ytop:ytop+window, xleft:xleft+window], (64,64))
            ## Get color features
            #spatial_features = bin_spatial2(subimg, size=spatial_size)
            #hist_features = color_hist2(subimg, nbins=hist_bins)
            ## Scale features and make a prediction
            #test_features = X_scaler.transform(np.hstack((spatial_features, hist_features, hog_features)).reshape(1, -1))    
            ##test_features = X_scaler.transform(np.hstack((shape_feat, hist_feat)).reshape(1, -1))    
            #####
            
            # svm prediction
            test_prediction = svc.predict(hog_features)
            if test_prediction == 1 or all_rectangles:
                xbox_left = np.int(xleft*scale)
                ytop_draw = np.int(ytop*scale)
                win_draw = np.int(window*scale)
                objboxes.append(((xbox_left, ytop_draw+ystart),(xbox_left+win_draw,ytop_draw+win_draw+ystart)))
    return objboxes
    
In [144]:
# parameters
img = mpimg.imread('test_images/test5.jpg')

ystart = 400
ystop = 656
scale = 1.5

svc = clf # a trained classifier
X_scaler = None
cspace = 'YUV' # RGB, HSV, HLS, LUV, YUV, YCrCb
orient = 11 
pix_per_cell = 16
cell_per_block = 2
hog_channel = 'ALL' # 0, 1, 2, ALL
spatial_size= None
hist_bins = None
all_rectangles = False

out_rectangles = find_cars(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, all_rectangles)

print('Number of rectangles detected: ', len(out_rectangles))
Number of rectangles detected:  4
In [145]:
# Define a function to draw bounding boxes
def draw_boxes(img, bboxes, color=(0, 0, 255), thick=6):
    # Make a copy of the image
    imcopy = np.copy(img)
    randcolor = False
    # Iterate through the bounding boxes
    for bbox in bboxes:
        if randcolor or color == 'random': 
            color = (np.random.randint(0,255), np.random.randint(0,255), np.random.randint(0,255))
            randcolor = True
        # Draw a rectangle given bbox coordinates
        cv2.rectangle(imcopy, bbox[0], bbox[1], color, thick)
    return imcopy
In [146]:
out_rect = draw_boxes(img, out_rectangles, color='random')
plt.figure(figsize=(10,5))
plt.imshow(out_rect)
Out[146]:
<matplotlib.image.AxesImage at 0x121c16390>
In [147]:
## Possible search areas
# Due to the sizes of the cars are based on the distance from the current camera, the size is varied. 
# find_cars method is called with different ystart, ystop, scale. 

# parameters
img = mpimg.imread('test_images/test5.jpg')

svc = clf # a trained classifier
X_scaler = None
cspace = 'YUV' # RGB, HSV, HLS, LUV, YUV, YCrCb
orient = 11
pix_per_cell = 16
cell_per_block = 2
hog_channel = 'ALL' # 0, 1, 2, ALL
spatial_size= None
hist_bins = None

all_rectangles = True

rectangles = []

configs = [[400,464,1.0], [416,480,1.0]]
           
i=0
for (ystart, ystop, scale) in configs:
    i+=1
    out_rectangles = find_cars(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, all_rectangles)
    rectangles.append(out_rectangles)
    print('%d. Number of rectangles detected is %d with configs of (ystart, ystop, scale)=(%d,%d,%d)' % (i, len(out_rectangles), ystart, ystop, scale))

rects = [x for sublist in rectangles for x in sublist] 
out_rect1 = draw_boxes(img, rects, color='random', thick=3)
plt.figure(figsize=(12,10))
plt.imshow(out_rect1)
1. Number of rectangles detected is 39 with configs of (ystart, ystop, scale)=(400,464,1)
2. Number of rectangles detected is 39 with configs of (ystart, ystop, scale)=(416,480,1)
Out[147]:
<matplotlib.image.AxesImage at 0x121d289e8>
In [148]:
all_rectangles = True

rectangles = []

configs = [[400,535,2.0], [464,599,2.0]]
           
i=0
for (ystart, ystop, scale) in configs:
    i+=1
    out_rectangles = find_cars(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, all_rectangles)
    rectangles.append(out_rectangles)
    print('%d. Number of rectangles detected is %d with configs of (ystart, ystop, scale)=(%d,%d,%d)' % (i, len(out_rectangles), ystart, ystop, scale))

rects = [x for sublist in rectangles for x in sublist] 
out_rect1 = draw_boxes(img, rects, color='random', thick=3)
plt.figure(figsize=(12,10))
plt.imshow(out_rect1)
1. Number of rectangles detected is 19 with configs of (ystart, ystop, scale)=(400,535,2)
2. Number of rectangles detected is 19 with configs of (ystart, ystop, scale)=(464,599,2)
Out[148]:
<matplotlib.image.AxesImage at 0x121bc4828>
In [149]:
all_rectangles = True

rectangles = []

configs = [[400,590,2.5], [464,654,2.5]]
           
i=0
for (ystart, ystop, scale) in configs:
    i+=1
    out_rectangles = find_cars(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, all_rectangles)
    rectangles.append(out_rectangles)
    print('%d. Number of rectangles detected is %d with configs of (ystart, ystop, scale)=(%d,%d,%d)' % (i, len(out_rectangles), ystart, ystop, scale))

rects = [x for sublist in rectangles for x in sublist] 
out_rect1 = draw_boxes(img, rects, color='random', thick=3)
plt.figure(figsize=(12,10))
plt.imshow(out_rect1)
1. Number of rectangles detected is 15 with configs of (ystart, ystop, scale)=(400,590,2)
2. Number of rectangles detected is 15 with configs of (ystart, ystop, scale)=(464,654,2)
Out[149]:
<matplotlib.image.AxesImage at 0x121dbc390>
In [150]:
all_rectangles = False
rectangles = []
configs = [[400,464,1.0], [464,528,1.0]]
           
i=0
for (ystart, ystop, scale) in configs:
    i+=1
    out_rectangles = find_cars(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, all_rectangles)
    rectangles.append(out_rectangles)
    print('%d. Number of rectangles detected is %d with configs of (ystart, ystop, scale)=(%d,%d,%d)' % (i, len(out_rectangles), ystart, ystop, scale))

rects = [x for sublist in rectangles for x in sublist] 
out_rect1 = draw_boxes(img, rects, color='random', thick=3)
plt.figure(figsize=(12,10))
plt.imshow(out_rect1)
1. Number of rectangles detected is 2 with configs of (ystart, ystop, scale)=(400,464,1)
2. Number of rectangles detected is 0 with configs of (ystart, ystop, scale)=(464,528,1)
Out[150]:
<matplotlib.image.AxesImage at 0x121c98128>
In [151]:
# Combining different sliding window searches.
# parameters
img = mpimg.imread('test_images/test5.jpg')

svc = clf # a trained classifier
X_scaler = None
cspace = 'YUV' # RGB, HSV, HLS, LUV, YUV, YCrCb
orient = 11
pix_per_cell = 16
cell_per_block = 2
hog_channel = 'ALL' # 0, 1, 2, ALL
spatial_size= None
hist_bins = None

all_rectangles = False

rectangles = []

# configure different sliding window searches.
configs = [[400,464,1.0], [416,480,1.0], [400,496,1.5], [432,528,1.5], [400,528,2.0], [432,560,2.0], [400,596,3.5], [464,660,3.5]]
           
i=0
for (ystart, ystop, scale) in configs:
    i+=1
    out_rectangles = find_cars(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, all_rectangles)
    rectangles.append(out_rectangles)
    print('%d. Number of rectangles detected is %d with configs of (ystart, ystop, scale)=(%d,%d,%d)' % (i, len(out_rectangles), ystart, ystop, scale))


rectangles = [x for sublist in rectangles for x in sublist] 
out_rect1 = draw_boxes(img, rectangles, color='random', thick=3)
plt.figure(figsize=(12,10))
plt.imshow(out_rect1)
1. Number of rectangles detected is 2 with configs of (ystart, ystop, scale)=(400,464,1)
2. Number of rectangles detected is 1 with configs of (ystart, ystop, scale)=(416,480,1)
3. Number of rectangles detected is 4 with configs of (ystart, ystop, scale)=(400,496,1)
4. Number of rectangles detected is 0 with configs of (ystart, ystop, scale)=(432,528,1)
5. Number of rectangles detected is 3 with configs of (ystart, ystop, scale)=(400,528,2)
6. Number of rectangles detected is 0 with configs of (ystart, ystop, scale)=(432,560,2)
7. Number of rectangles detected is 0 with configs of (ystart, ystop, scale)=(400,596,3)
8. Number of rectangles detected is 0 with configs of (ystart, ystop, scale)=(464,660,3)
Out[151]:
<matplotlib.image.AxesImage at 0x125a12898>
In [152]:
### Heat Map
def add_heat(heatmap, bbox_list):
    # Iterate through list of bboxes
    for box in bbox_list:
        # Add += 1 for all pixels inside each bbox
        # Assuming each "box" takes the form ((x1, y1), (x2, y2))
        heatmap[box[0][1]:box[1][1], box[0][0]:box[1][0]] += 1
    return heatmap # updated heatmap
In [153]:
out_heatmap = np.zeros_like(img[:,:,0])
out_heatmap = add_heat(out_heatmap, rectangles)

plt.figure(figsize=(12,10))
plt.imshow(out_heatmap, cmap='hot')
Out[153]:
<matplotlib.image.AxesImage at 0x121e3ba90>
In [154]:
# apply threshold
def apply_threshold(heatmap, threshold):
    # Zero out pixels below the threshold
    heatmap[heatmap <= threshold] = 0
    return heatmap
In [155]:
threshold_hm = 1
out_thresh_heatmap = apply_threshold(out_heatmap, threshold_hm)

plt.figure(figsize=(12,10))
plt.imshow(out_heatmap, cmap='hot')
Out[155]:
<matplotlib.image.AxesImage at 0x121e9fe10>
In [156]:
# use scipy 
labels = label(out_thresh_heatmap)

plt.figure(figsize=(12,10))
plt.imshow(out_heatmap, cmap='gray')
print(labels[1], 'cars found')
2 cars found
In [157]:
# draw boxes
def draw_labeled_bboxes(img, labels, color=(0,0,255), thick=6):
    # Iterate through all detected cars
    rects = []
    for car_number in range(1, labels[1]+1):
        # Find pixels with each car_number label value
        nonzero = (labels[0] == car_number).nonzero()
        # Identify x and y values of those pixels
        nonzeroy = np.array(nonzero[0])
        nonzerox = np.array(nonzero[1])
        # Define a bounding box based on min/max x and y
        bbox = ((np.min(nonzerox), np.min(nonzeroy)), (np.max(nonzerox), np.max(nonzeroy)))
        randcolor = False
        rects.append(bbox)
        if randcolor or color == 'random': 
            color = (np.random.randint(0,255), np.random.randint(0,255), np.random.randint(0,255))
            randcolor = True
        # Draw the box on the image
        #cv2.rectangle(img, bbox[0], bbox[1], (0,0,255), 6)
        cv2.rectangle(img, bbox[0], bbox[1], color, thick)
    return img, rects
In [158]:
# Find final boxes from heatmap using label function
# labels = label(out_thresh_heatmap)
draw_img, rects = draw_labeled_bboxes(np.copy(img), labels)

plt.figure(figsize=(12,10))
plt.imshow(draw_img, cmap='gray')
print(labels[1], 'cars detected')
2 cars detected

Run your pipeline on a video stream (start with the test_video.mp4 and later implement on full project_video.mp4) and create a heat map of recurring detections frame by frame to reject outliers and follow detected vehicles.

In [159]:
def pipeline_process(img):
    svc = clf # a trained classifier of SVM
    #svc = clf_dt # a trained classifier of decision tree
    X_scaler = None
    cspace = 'YUV' # RGB, HSV, HLS, LUV, YUV, YCrCb
    orient = 11
    pix_per_cell = 16
    cell_per_block = 2
    hog_channel = 'ALL' # 0, 1, 2, ALL
    spatial_size= None
    hist_bins = None

    all_rectangles = False

    rectangles = []

    # configure different sliding window searches.
    # scale <1.0 introduces more falsely positives. I have tested to [400,464,0.5], it introduced 18 rectangles.
    configs = [[400,464,1.0], [416,480,1.0], [400,496,1.5], [432,528,1.5], [400,528,2.0], [432,560,2.0], [400,596,3.5], [464,660,3.5]]

    for (ystart, ystop, scale) in configs:
        out_rectangles = find_cars(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, all_rectangles)
        rectangles.append(out_rectangles)
    
    rectangles = [x for sublist in rectangles for x in sublist] 
    # add heatmap
    out_heatmap = np.zeros_like(img[:,:,0])
    out_heatmap = add_heat(out_heatmap, rectangles)
    # add threshold
    out_heatmap = apply_threshold(out_heatmap, 1)
    labels = label(out_heatmap)
    # draw boxes
    #draw_image, rects = draw_labeled_bboxes(np.copy(img), labels, color='random', thick=3)
    draw_image, rects = draw_labeled_bboxes(np.copy(img), labels)
    
    return draw_image
    
In [160]:
# testing
test_images = glob.glob('test_images/t*.jpg')

fig, ax = plt.subplots(3, 2, figsize=(14,8))
fig.subplots_adjust(hspace = .004, wspace=.002)
ax = ax.ravel()

for i, imgx in enumerate(test_images):
    output = pipeline_process(mpimg.imread(imgx))
    ax[i].imshow(output)
    ax[i].axis('off')
In [161]:
from moviepy.editor import VideoFileClip
from IPython.display import HTML
test_out_file = 'test_video_out_without_detection1.mp4'
clip_test = VideoFileClip('test_video.mp4')
clip_test_out = clip_test.fl_image(pipeline_process)
%time clip_test_out.write_videofile(test_out_file, audio=False)
[MoviePy] >>>> Building video test_video_out_without_detection1.mp4
[MoviePy] Writing video test_video_out_without_detection1.mp4
  0%|          | 0/39 [00:00<?, ?it/s]
  3%|▎         | 1/39 [00:00<00:10,  3.74it/s]
  5%|▌         | 2/39 [00:00<00:09,  3.77it/s]
  8%|▊         | 3/39 [00:00<00:09,  3.74it/s]
 10%|█         | 4/39 [00:01<00:09,  3.79it/s]
 13%|█▎        | 5/39 [00:01<00:09,  3.75it/s]
 15%|█▌        | 6/39 [00:01<00:08,  3.72it/s]
 18%|█▊        | 7/39 [00:01<00:08,  3.76it/s]
 21%|██        | 8/39 [00:02<00:08,  3.77it/s]
 23%|██▎       | 9/39 [00:02<00:07,  3.83it/s]
 26%|██▌       | 10/39 [00:02<00:07,  3.90it/s]
 28%|██▊       | 11/39 [00:02<00:07,  3.96it/s]
 31%|███       | 12/39 [00:03<00:06,  4.01it/s]
 33%|███▎      | 13/39 [00:03<00:06,  4.06it/s]
 36%|███▌      | 14/39 [00:03<00:06,  4.08it/s]
 38%|███▊      | 15/39 [00:03<00:05,  4.05it/s]
 41%|████      | 16/39 [00:04<00:05,  4.06it/s]
 44%|████▎     | 17/39 [00:04<00:05,  4.00it/s]
 46%|████▌     | 18/39 [00:04<00:05,  3.99it/s]
 49%|████▊     | 19/39 [00:04<00:05,  3.90it/s]
 51%|█████▏    | 20/39 [00:05<00:04,  3.88it/s]
 54%|█████▍    | 21/39 [00:05<00:04,  3.86it/s]
 56%|█████▋    | 22/39 [00:05<00:04,  3.81it/s]
 59%|█████▉    | 23/39 [00:05<00:04,  3.92it/s]
 62%|██████▏   | 24/39 [00:06<00:03,  3.90it/s]
 64%|██████▍   | 25/39 [00:06<00:03,  3.88it/s]
 67%|██████▋   | 26/39 [00:06<00:03,  3.87it/s]
 69%|██████▉   | 27/39 [00:06<00:03,  3.85it/s]
 72%|███████▏  | 28/39 [00:07<00:02,  3.84it/s]
 74%|███████▍  | 29/39 [00:07<00:02,  3.84it/s]
 77%|███████▋  | 30/39 [00:07<00:02,  3.79it/s]
 79%|███████▉  | 31/39 [00:07<00:02,  3.79it/s]
 82%|████████▏ | 32/39 [00:08<00:01,  3.85it/s]
 85%|████████▍ | 33/39 [00:08<00:01,  3.81it/s]
 87%|████████▋ | 34/39 [00:08<00:01,  3.78it/s]
 90%|████████▉ | 35/39 [00:09<00:01,  3.81it/s]
 92%|█████████▏| 36/39 [00:09<00:00,  3.81it/s]
 95%|█████████▍| 37/39 [00:09<00:00,  3.79it/s]
 97%|█████████▋| 38/39 [00:09<00:00,  3.76it/s]
[MoviePy] Done.
[MoviePy] >>>> Video ready: test_video_out_without_detection1.mp4 

CPU times: user 8.94 s, sys: 1.45 s, total: 10.4 s
Wall time: 10.7 s
In [162]:
test_out_file = 'project_video_out_without_detection1.mp4'
clip_test = VideoFileClip('project_video.mp4')
clip_test_out = clip_test.fl_image(pipeline_process)
%time clip_test_out.write_videofile(test_out_file, audio=False)
[MoviePy] >>>> Building video project_video_out_without_detection1.mp4
[MoviePy] Writing video project_video_out_without_detection1.mp4
  0%|          | 0/1261 [00:00<?, ?it/s]
  0%|          | 1/1261 [00:00<05:32,  3.79it/s]
  0%|          | 2/1261 [00:00<05:23,  3.89it/s]
  0%|          | 3/1261 [00:00<05:16,  3.97it/s]
  0%|          | 4/1261 [00:00<05:16,  3.97it/s]
  0%|          | 5/1261 [00:01<05:13,  4.00it/s]
  0%|          | 6/1261 [00:01<05:11,  4.02it/s]
  1%|          | 7/1261 [00:01<05:11,  4.02it/s]
  1%|          | 8/1261 [00:01<05:12,  4.01it/s]
  1%|          | 9/1261 [00:02<05:08,  4.05it/s]
  1%|          | 10/1261 [00:02<05:13,  3.99it/s]
  1%|          | 11/1261 [00:02<05:12,  4.00it/s]
  1%|          | 12/1261 [00:02<05:11,  4.01it/s]
  1%|          | 13/1261 [00:03<05:08,  4.05it/s]
  1%|          | 14/1261 [00:03<05:05,  4.08it/s]
  1%|          | 15/1261 [00:03<05:09,  4.03it/s]
  1%|▏         | 16/1261 [00:03<05:06,  4.07it/s]
  1%|▏         | 17/1261 [00:04<05:08,  4.03it/s]
  1%|▏         | 18/1261 [00:04<05:07,  4.04it/s]
  2%|▏         | 19/1261 [00:04<05:12,  3.98it/s]
  2%|▏         | 20/1261 [00:04<05:13,  3.96it/s]
  2%|▏         | 21/1261 [00:05<05:13,  3.96it/s]
  2%|▏         | 22/1261 [00:05<05:08,  4.02it/s]
  2%|▏         | 23/1261 [00:05<05:04,  4.06it/s]
  2%|▏         | 24/1261 [00:05<05:06,  4.04it/s]
  2%|▏         | 25/1261 [00:06<05:04,  4.06it/s]
  2%|▏         | 26/1261 [00:06<05:03,  4.07it/s]
  2%|▏         | 27/1261 [00:06<05:01,  4.09it/s]
  2%|▏         | 28/1261 [00:06<05:02,  4.07it/s]
  2%|▏         | 29/1261 [00:07<05:02,  4.07it/s]
  2%|▏         | 30/1261 [00:07<05:04,  4.05it/s]
  2%|▏         | 31/1261 [00:07<05:05,  4.02it/s]
  3%|▎         | 32/1261 [00:07<05:10,  3.96it/s]
  3%|▎         | 33/1261 [00:08<05:11,  3.94it/s]
  3%|▎         | 34/1261 [00:08<05:06,  4.01it/s]
  3%|▎         | 35/1261 [00:08<05:00,  4.08it/s]
  3%|▎         | 36/1261 [00:08<05:00,  4.08it/s]
  3%|▎         | 37/1261 [00:09<04:55,  4.14it/s]
  3%|▎         | 38/1261 [00:09<04:52,  4.18it/s]
  3%|▎         | 39/1261 [00:09<04:51,  4.19it/s]
  3%|▎         | 40/1261 [00:09<04:49,  4.22it/s]
  3%|▎         | 41/1261 [00:10<04:46,  4.26it/s]
  3%|▎         | 42/1261 [00:10<04:44,  4.28it/s]
  3%|▎         | 43/1261 [00:10<04:46,  4.25it/s]
  3%|▎         | 44/1261 [00:10<04:46,  4.25it/s]
  4%|▎         | 45/1261 [00:11<04:53,  4.14it/s]
  4%|▎         | 46/1261 [00:11<04:55,  4.12it/s]
  4%|▎         | 47/1261 [00:11<04:56,  4.09it/s]
  4%|▍         | 48/1261 [00:11<05:03,  3.99it/s]
  4%|▍         | 49/1261 [00:12<05:03,  3.99it/s]
  4%|▍         | 50/1261 [00:12<05:03,  3.99it/s]
  4%|▍         | 51/1261 [00:12<05:01,  4.02it/s]
  4%|▍         | 52/1261 [00:12<05:01,  4.01it/s]
  4%|▍         | 53/1261 [00:13<05:04,  3.97it/s]
  4%|▍         | 54/1261 [00:13<05:05,  3.95it/s]
  4%|▍         | 55/1261 [00:13<05:05,  3.94it/s]
  4%|▍         | 56/1261 [00:13<05:04,  3.96it/s]
  5%|▍         | 57/1261 [00:14<05:06,  3.93it/s]
  5%|▍         | 58/1261 [00:14<04:59,  4.01it/s]
  5%|▍         | 59/1261 [00:14<04:58,  4.03it/s]
  5%|▍         | 60/1261 [00:14<04:55,  4.06it/s]
  5%|▍         | 61/1261 [00:15<04:50,  4.13it/s]
  5%|▍         | 62/1261 [00:15<04:45,  4.20it/s]
  5%|▍         | 63/1261 [00:15<04:46,  4.19it/s]
  5%|▌         | 64/1261 [00:15<04:43,  4.21it/s]
  5%|▌         | 65/1261 [00:15<04:42,  4.24it/s]
  5%|▌         | 66/1261 [00:16<04:41,  4.25it/s]
  5%|▌         | 67/1261 [00:16<04:42,  4.23it/s]
  5%|▌         | 68/1261 [00:16<04:41,  4.24it/s]
  5%|▌         | 69/1261 [00:16<04:46,  4.16it/s]
  6%|▌         | 70/1261 [00:17<04:51,  4.09it/s]
  6%|▌         | 71/1261 [00:17<04:54,  4.05it/s]
  6%|▌         | 72/1261 [00:17<04:58,  3.99it/s]
  6%|▌         | 73/1261 [00:17<04:53,  4.04it/s]
  6%|▌         | 74/1261 [00:18<04:55,  4.02it/s]
  6%|▌         | 75/1261 [00:18<04:55,  4.01it/s]
  6%|▌         | 76/1261 [00:18<04:50,  4.08it/s]
  6%|▌         | 77/1261 [00:18<04:52,  4.05it/s]
  6%|▌         | 78/1261 [00:19<04:51,  4.06it/s]
  6%|▋         | 79/1261 [00:19<04:48,  4.09it/s]
  6%|▋         | 80/1261 [00:19<04:49,  4.08it/s]
  6%|▋         | 81/1261 [00:19<04:49,  4.07it/s]
  7%|▋         | 82/1261 [00:20<04:45,  4.13it/s]
  7%|▋         | 83/1261 [00:20<04:41,  4.19it/s]
  7%|▋         | 84/1261 [00:20<04:44,  4.13it/s]
  7%|▋         | 85/1261 [00:20<04:43,  4.14it/s]
  7%|▋         | 86/1261 [00:21<04:40,  4.19it/s]
  7%|▋         | 87/1261 [00:21<04:40,  4.18it/s]
  7%|▋         | 88/1261 [00:21<04:43,  4.14it/s]
  7%|▋         | 89/1261 [00:21<04:43,  4.14it/s]
  7%|▋         | 90/1261 [00:22<04:43,  4.12it/s]
  7%|▋         | 91/1261 [00:22<04:44,  4.11it/s]
  7%|▋         | 92/1261 [00:22<04:44,  4.11it/s]
  7%|▋         | 93/1261 [00:22<04:43,  4.12it/s]
  7%|▋         | 94/1261 [00:23<04:46,  4.07it/s]
  8%|▊         | 95/1261 [00:23<04:42,  4.12it/s]
  8%|▊         | 96/1261 [00:23<04:45,  4.08it/s]
  8%|▊         | 97/1261 [00:23<04:43,  4.11it/s]
  8%|▊         | 98/1261 [00:24<04:41,  4.14it/s]
  8%|▊         | 99/1261 [00:24<04:39,  4.15it/s]
  8%|▊         | 100/1261 [00:24<04:37,  4.18it/s]
  8%|▊         | 101/1261 [00:24<04:38,  4.17it/s]
  8%|▊         | 102/1261 [00:24<04:43,  4.10it/s]
  8%|▊         | 103/1261 [00:25<04:42,  4.10it/s]
  8%|▊         | 104/1261 [00:25<04:41,  4.11it/s]
  8%|▊         | 105/1261 [00:25<04:45,  4.05it/s]
  8%|▊         | 106/1261 [00:25<04:49,  3.99it/s]
  8%|▊         | 107/1261 [00:26<04:50,  3.98it/s]
  9%|▊         | 108/1261 [00:26<04:46,  4.03it/s]
  9%|▊         | 109/1261 [00:26<04:46,  4.01it/s]
  9%|▊         | 110/1261 [00:26<04:46,  4.02it/s]
  9%|▉         | 111/1261 [00:27<04:45,  4.02it/s]
  9%|▉         | 112/1261 [00:27<04:45,  4.03it/s]
  9%|▉         | 113/1261 [00:27<04:48,  3.98it/s]
  9%|▉         | 114/1261 [00:27<04:51,  3.93it/s]
  9%|▉         | 115/1261 [00:28<04:56,  3.87it/s]
  9%|▉         | 116/1261 [00:28<04:53,  3.90it/s]
  9%|▉         | 117/1261 [00:28<04:50,  3.94it/s]
  9%|▉         | 118/1261 [00:29<04:47,  3.97it/s]
  9%|▉         | 119/1261 [00:29<04:44,  4.02it/s]
 10%|▉         | 120/1261 [00:29<04:46,  3.99it/s]
 10%|▉         | 121/1261 [00:29<04:45,  3.99it/s]
 10%|▉         | 122/1261 [00:30<04:45,  3.99it/s]
 10%|▉         | 123/1261 [00:30<04:40,  4.06it/s]
 10%|▉         | 124/1261 [00:30<04:42,  4.02it/s]
 10%|▉         | 125/1261 [00:30<04:40,  4.04it/s]
 10%|▉         | 126/1261 [00:30<04:41,  4.03it/s]
 10%|█         | 127/1261 [00:31<04:37,  4.08it/s]
 10%|█         | 128/1261 [00:31<04:36,  4.10it/s]
 10%|█         | 129/1261 [00:31<04:34,  4.12it/s]
 10%|█         | 130/1261 [00:31<04:33,  4.14it/s]
 10%|█         | 131/1261 [00:32<04:37,  4.07it/s]
 10%|█         | 132/1261 [00:32<04:39,  4.04it/s]
 11%|█         | 133/1261 [00:32<04:38,  4.04it/s]
 11%|█         | 134/1261 [00:32<04:39,  4.03it/s]
 11%|█         | 135/1261 [00:33<04:38,  4.05it/s]
 11%|█         | 136/1261 [00:33<04:42,  3.99it/s]
 11%|█         | 137/1261 [00:33<04:40,  4.01it/s]
 11%|█         | 138/1261 [00:33<04:38,  4.03it/s]
 11%|█         | 139/1261 [00:34<04:40,  4.01it/s]
 11%|█         | 140/1261 [00:34<04:39,  4.00it/s]
 11%|█         | 141/1261 [00:34<04:39,  4.00it/s]
 11%|█▏        | 142/1261 [00:34<04:41,  3.97it/s]
 11%|█▏        | 143/1261 [00:35<04:44,  3.92it/s]
 11%|█▏        | 144/1261 [00:35<04:42,  3.95it/s]
 11%|█▏        | 145/1261 [00:35<04:40,  3.99it/s]
 12%|█▏        | 146/1261 [00:35<04:38,  4.01it/s]
 12%|█▏        | 147/1261 [00:36<04:40,  3.97it/s]
 12%|█▏        | 148/1261 [00:36<04:38,  4.00it/s]
 12%|█▏        | 149/1261 [00:36<04:39,  3.98it/s]
 12%|█▏        | 150/1261 [00:36<04:39,  3.98it/s]
 12%|█▏        | 151/1261 [00:37<04:36,  4.01it/s]
 12%|█▏        | 152/1261 [00:37<04:35,  4.03it/s]
 12%|█▏        | 153/1261 [00:37<04:32,  4.07it/s]
 12%|█▏        | 154/1261 [00:37<04:33,  4.05it/s]
 12%|█▏        | 155/1261 [00:38<04:32,  4.06it/s]
 12%|█▏        | 156/1261 [00:38<04:33,  4.04it/s]
 12%|█▏        | 157/1261 [00:38<04:33,  4.04it/s]
 13%|█▎        | 158/1261 [00:38<04:36,  4.00it/s]
 13%|█▎        | 159/1261 [00:39<04:34,  4.02it/s]
 13%|█▎        | 160/1261 [00:39<04:35,  3.99it/s]
 13%|█▎        | 161/1261 [00:39<04:40,  3.91it/s]
 13%|█▎        | 162/1261 [00:39<04:41,  3.90it/s]
 13%|█▎        | 163/1261 [00:40<04:41,  3.90it/s]
 13%|█▎        | 164/1261 [00:40<04:37,  3.95it/s]
 13%|█▎        | 165/1261 [00:40<04:36,  3.96it/s]
 13%|█▎        | 166/1261 [00:40<04:36,  3.97it/s]
 13%|█▎        | 167/1261 [00:41<04:37,  3.94it/s]
 13%|█▎        | 168/1261 [00:41<04:37,  3.94it/s]
 13%|█▎        | 169/1261 [00:41<04:37,  3.94it/s]
 13%|█▎        | 170/1261 [00:42<04:39,  3.90it/s]
 14%|█▎        | 171/1261 [00:42<04:39,  3.90it/s]
 14%|█▎        | 172/1261 [00:42<04:38,  3.91it/s]
 14%|█▎        | 173/1261 [00:42<04:36,  3.93it/s]
 14%|█▍        | 174/1261 [00:43<04:35,  3.94it/s]
 14%|█▍        | 175/1261 [00:43<04:35,  3.95it/s]
 14%|█▍        | 176/1261 [00:43<04:36,  3.92it/s]
 14%|█▍        | 177/1261 [00:43<04:35,  3.93it/s]
 14%|█▍        | 178/1261 [00:44<04:36,  3.91it/s]
 14%|█▍        | 179/1261 [00:44<04:37,  3.90it/s]
 14%|█▍        | 180/1261 [00:44<04:36,  3.91it/s]
 14%|█▍        | 181/1261 [00:44<04:34,  3.93it/s]
 14%|█▍        | 182/1261 [00:45<04:33,  3.94it/s]
 15%|█▍        | 183/1261 [00:45<04:30,  3.98it/s]
 15%|█▍        | 184/1261 [00:45<04:25,  4.05it/s]
 15%|█▍        | 185/1261 [00:45<04:27,  4.02it/s]
 15%|█▍        | 186/1261 [00:46<04:27,  4.03it/s]
 15%|█▍        | 187/1261 [00:46<04:28,  4.00it/s]
 15%|█▍        | 188/1261 [00:46<04:30,  3.97it/s]
 15%|█▍        | 189/1261 [00:46<04:31,  3.95it/s]
 15%|█▌        | 190/1261 [00:47<04:34,  3.90it/s]
 15%|█▌        | 191/1261 [00:47<04:29,  3.97it/s]
 15%|█▌        | 192/1261 [00:47<04:25,  4.02it/s]
 15%|█▌        | 193/1261 [00:47<04:23,  4.05it/s]
 15%|█▌        | 194/1261 [00:48<04:20,  4.10it/s]
 15%|█▌        | 195/1261 [00:48<04:20,  4.10it/s]
 16%|█▌        | 196/1261 [00:48<04:19,  4.11it/s]
 16%|█▌        | 197/1261 [00:48<04:25,  4.01it/s]
 16%|█▌        | 198/1261 [00:49<04:25,  4.01it/s]
 16%|█▌        | 199/1261 [00:49<04:29,  3.94it/s]
 16%|█▌        | 200/1261 [00:49<04:32,  3.89it/s]
 16%|█▌        | 201/1261 [00:49<04:33,  3.88it/s]
 16%|█▌        | 202/1261 [00:50<04:26,  3.98it/s]
 16%|█▌        | 203/1261 [00:50<04:26,  3.97it/s]
 16%|█▌        | 204/1261 [00:50<04:26,  3.96it/s]
 16%|█▋        | 205/1261 [00:50<04:26,  3.96it/s]
 16%|█▋        | 206/1261 [00:51<04:25,  3.97it/s]
 16%|█▋        | 207/1261 [00:51<04:28,  3.93it/s]
 16%|█▋        | 208/1261 [00:51<04:24,  3.98it/s]
 17%|█▋        | 209/1261 [00:51<04:22,  4.01it/s]
 17%|█▋        | 210/1261 [00:52<04:19,  4.05it/s]
 17%|█▋        | 211/1261 [00:52<04:14,  4.12it/s]
 17%|█▋        | 212/1261 [00:52<04:12,  4.15it/s]
 17%|█▋        | 213/1261 [00:52<04:11,  4.16it/s]
 17%|█▋        | 214/1261 [00:53<04:10,  4.17it/s]
 17%|█▋        | 215/1261 [00:53<04:13,  4.13it/s]
 17%|█▋        | 216/1261 [00:53<04:13,  4.12it/s]
 17%|█▋        | 217/1261 [00:53<04:12,  4.13it/s]
 17%|█▋        | 218/1261 [00:53<04:11,  4.14it/s]
 17%|█▋        | 219/1261 [00:54<04:11,  4.15it/s]
 17%|█▋        | 220/1261 [00:54<04:13,  4.10it/s]
 18%|█▊        | 221/1261 [00:54<04:17,  4.04it/s]
 18%|█▊        | 222/1261 [00:54<04:19,  4.01it/s]
 18%|█▊        | 223/1261 [00:55<04:25,  3.91it/s]
 18%|█▊        | 224/1261 [00:55<04:24,  3.92it/s]
 18%|█▊        | 225/1261 [00:55<04:21,  3.96it/s]
 18%|█▊        | 226/1261 [00:56<04:24,  3.91it/s]
 18%|█▊        | 227/1261 [00:56<04:26,  3.88it/s]
 18%|█▊        | 228/1261 [00:56<04:23,  3.92it/s]
 18%|█▊        | 229/1261 [00:56<04:25,  3.89it/s]
 18%|█▊        | 230/1261 [00:57<04:27,  3.85it/s]
 18%|█▊        | 231/1261 [00:57<04:25,  3.89it/s]
 18%|█▊        | 232/1261 [00:57<04:23,  3.90it/s]
 18%|█▊        | 233/1261 [00:57<04:24,  3.89it/s]
 19%|█▊        | 234/1261 [00:58<04:21,  3.93it/s]
 19%|█▊        | 235/1261 [00:58<04:21,  3.93it/s]
 19%|█▊        | 236/1261 [00:58<04:23,  3.90it/s]
 19%|█▉        | 237/1261 [00:58<04:25,  3.86it/s]
 19%|█▉        | 238/1261 [00:59<04:25,  3.85it/s]
 19%|█▉        | 239/1261 [00:59<04:22,  3.89it/s]
 19%|█▉        | 240/1261 [00:59<04:21,  3.91it/s]
 19%|█▉        | 241/1261 [00:59<04:20,  3.92it/s]
 19%|█▉        | 242/1261 [01:00<04:20,  3.92it/s]
 19%|█▉        | 243/1261 [01:00<04:18,  3.94it/s]
 19%|█▉        | 244/1261 [01:00<04:17,  3.96it/s]
 19%|█▉        | 245/1261 [01:00<04:16,  3.96it/s]
 20%|█▉        | 246/1261 [01:01<04:12,  4.01it/s]
 20%|█▉        | 247/1261 [01:01<04:10,  4.05it/s]
 20%|█▉        | 248/1261 [01:01<04:12,  4.01it/s]
 20%|█▉        | 249/1261 [01:01<04:16,  3.94it/s]
 20%|█▉        | 250/1261 [01:02<04:16,  3.95it/s]
 20%|█▉        | 251/1261 [01:02<04:14,  3.98it/s]
 20%|█▉        | 252/1261 [01:02<04:19,  3.89it/s]
 20%|██        | 253/1261 [01:02<04:16,  3.93it/s]
 20%|██        | 254/1261 [01:03<04:22,  3.84it/s]
 20%|██        | 255/1261 [01:03<04:19,  3.88it/s]
 20%|██        | 256/1261 [01:03<04:22,  3.83it/s]
 20%|██        | 257/1261 [01:03<04:22,  3.83it/s]
 20%|██        | 258/1261 [01:04<04:23,  3.80it/s]
 21%|██        | 259/1261 [01:04<04:19,  3.87it/s]
 21%|██        | 260/1261 [01:04<04:23,  3.80it/s]
 21%|██        | 261/1261 [01:05<04:26,  3.75it/s]
 21%|██        | 262/1261 [01:05<04:28,  3.72it/s]
 21%|██        | 263/1261 [01:05<04:27,  3.72it/s]
 21%|██        | 264/1261 [01:05<04:26,  3.74it/s]
 21%|██        | 265/1261 [01:06<04:20,  3.83it/s]
 21%|██        | 266/1261 [01:06<04:14,  3.90it/s]
 21%|██        | 267/1261 [01:06<04:11,  3.96it/s]
 21%|██▏       | 268/1261 [01:06<04:13,  3.91it/s]
 21%|██▏       | 269/1261 [01:07<04:09,  3.97it/s]
 21%|██▏       | 270/1261 [01:07<04:09,  3.97it/s]
 21%|██▏       | 271/1261 [01:07<04:06,  4.02it/s]
 22%|██▏       | 272/1261 [01:07<04:05,  4.03it/s]
 22%|██▏       | 273/1261 [01:08<04:05,  4.03it/s]
 22%|██▏       | 274/1261 [01:08<04:02,  4.08it/s]
 22%|██▏       | 275/1261 [01:08<04:06,  4.00it/s]
 22%|██▏       | 276/1261 [01:08<04:05,  4.01it/s]
 22%|██▏       | 277/1261 [01:09<04:02,  4.05it/s]
 22%|██▏       | 278/1261 [01:09<04:00,  4.09it/s]
 22%|██▏       | 279/1261 [01:09<03:59,  4.10it/s]
 22%|██▏       | 280/1261 [01:09<04:02,  4.04it/s]
 22%|██▏       | 281/1261 [01:10<04:03,  4.03it/s]
 22%|██▏       | 282/1261 [01:10<04:00,  4.08it/s]
 22%|██▏       | 283/1261 [01:10<04:02,  4.03it/s]
 23%|██▎       | 284/1261 [01:10<04:03,  4.02it/s]
 23%|██▎       | 285/1261 [01:11<04:04,  3.99it/s]
 23%|██▎       | 286/1261 [01:11<04:01,  4.03it/s]
 23%|██▎       | 287/1261 [01:11<04:05,  3.97it/s]
 23%|██▎       | 288/1261 [01:11<04:04,  3.98it/s]
 23%|██▎       | 289/1261 [01:12<04:06,  3.94it/s]
 23%|██▎       | 290/1261 [01:12<04:02,  4.01it/s]
 23%|██▎       | 291/1261 [01:12<04:02,  4.01it/s]
 23%|██▎       | 292/1261 [01:12<04:04,  3.96it/s]
 23%|██▎       | 293/1261 [01:13<04:05,  3.95it/s]
 23%|██▎       | 294/1261 [01:13<04:02,  3.99it/s]
 23%|██▎       | 295/1261 [01:13<04:02,  3.99it/s]
 23%|██▎       | 296/1261 [01:13<04:04,  3.95it/s]
 24%|██▎       | 297/1261 [01:14<04:04,  3.95it/s]
 24%|██▎       | 298/1261 [01:14<04:00,  4.01it/s]
 24%|██▎       | 299/1261 [01:14<04:01,  3.98it/s]
 24%|██▍       | 300/1261 [01:14<04:02,  3.96it/s]
 24%|██▍       | 301/1261 [01:15<04:02,  3.96it/s]
 24%|██▍       | 302/1261 [01:15<03:57,  4.04it/s]
 24%|██▍       | 303/1261 [01:15<03:56,  4.04it/s]
 24%|██▍       | 304/1261 [01:15<03:56,  4.05it/s]
 24%|██▍       | 305/1261 [01:16<03:55,  4.06it/s]
 24%|██▍       | 306/1261 [01:16<03:52,  4.10it/s]
 24%|██▍       | 307/1261 [01:16<03:56,  4.04it/s]
 24%|██▍       | 308/1261 [01:16<03:55,  4.04it/s]
 25%|██▍       | 309/1261 [01:17<03:58,  4.00it/s]
 25%|██▍       | 310/1261 [01:17<03:56,  4.03it/s]
 25%|██▍       | 311/1261 [01:17<03:55,  4.04it/s]
 25%|██▍       | 312/1261 [01:17<03:54,  4.05it/s]
 25%|██▍       | 313/1261 [01:18<03:55,  4.03it/s]
 25%|██▍       | 314/1261 [01:18<03:52,  4.07it/s]
 25%|██▍       | 315/1261 [01:18<03:52,  4.07it/s]
 25%|██▌       | 316/1261 [01:18<03:52,  4.07it/s]
 25%|██▌       | 317/1261 [01:19<04:00,  3.93it/s]
 25%|██▌       | 318/1261 [01:19<04:04,  3.86it/s]
 25%|██▌       | 319/1261 [01:19<04:04,  3.85it/s]
 25%|██▌       | 320/1261 [01:19<04:04,  3.85it/s]
 25%|██▌       | 321/1261 [01:20<04:05,  3.82it/s]
 26%|██▌       | 322/1261 [01:20<04:07,  3.79it/s]
 26%|██▌       | 323/1261 [01:20<04:10,  3.74it/s]
 26%|██▌       | 324/1261 [01:20<04:05,  3.82it/s]
 26%|██▌       | 325/1261 [01:21<03:59,  3.91it/s]
 26%|██▌       | 326/1261 [01:21<03:55,  3.97it/s]
 26%|██▌       | 327/1261 [01:21<03:54,  3.99it/s]
 26%|██▌       | 328/1261 [01:21<03:56,  3.95it/s]
 26%|██▌       | 329/1261 [01:22<03:59,  3.90it/s]
 26%|██▌       | 330/1261 [01:22<03:59,  3.88it/s]
 26%|██▌       | 331/1261 [01:22<04:00,  3.87it/s]
 26%|██▋       | 332/1261 [01:22<03:59,  3.88it/s]
 26%|██▋       | 333/1261 [01:23<03:58,  3.89it/s]
 26%|██▋       | 334/1261 [01:23<03:58,  3.89it/s]
 27%|██▋       | 335/1261 [01:23<04:00,  3.84it/s]
 27%|██▋       | 336/1261 [01:23<04:01,  3.84it/s]
 27%|██▋       | 337/1261 [01:24<03:59,  3.86it/s]
 27%|██▋       | 338/1261 [01:24<03:57,  3.89it/s]
 27%|██▋       | 339/1261 [01:24<03:57,  3.88it/s]
 27%|██▋       | 340/1261 [01:24<03:57,  3.88it/s]
 27%|██▋       | 341/1261 [01:25<03:55,  3.91it/s]
 27%|██▋       | 342/1261 [01:25<03:54,  3.93it/s]
 27%|██▋       | 343/1261 [01:25<03:56,  3.89it/s]
 27%|██▋       | 344/1261 [01:25<03:55,  3.90it/s]
 27%|██▋       | 345/1261 [01:26<03:53,  3.93it/s]
 27%|██▋       | 346/1261 [01:26<03:52,  3.93it/s]
 28%|██▊       | 347/1261 [01:26<03:51,  3.94it/s]
 28%|██▊       | 348/1261 [01:26<03:50,  3.96it/s]
 28%|██▊       | 349/1261 [01:27<03:47,  4.01it/s]
 28%|██▊       | 350/1261 [01:27<03:47,  4.01it/s]
 28%|██▊       | 351/1261 [01:27<03:46,  4.01it/s]
 28%|██▊       | 352/1261 [01:27<03:44,  4.04it/s]
 28%|██▊       | 353/1261 [01:28<03:41,  4.10it/s]
 28%|██▊       | 354/1261 [01:28<03:41,  4.10it/s]
 28%|██▊       | 355/1261 [01:28<03:40,  4.12it/s]
 28%|██▊       | 356/1261 [01:28<03:38,  4.13it/s]
 28%|██▊       | 357/1261 [01:29<03:40,  4.10it/s]
 28%|██▊       | 358/1261 [01:29<03:40,  4.09it/s]
 28%|██▊       | 359/1261 [01:29<03:40,  4.09it/s]
 29%|██▊       | 360/1261 [01:29<03:40,  4.09it/s]
 29%|██▊       | 361/1261 [01:30<03:39,  4.10it/s]
 29%|██▊       | 362/1261 [01:30<03:38,  4.12it/s]
 29%|██▉       | 363/1261 [01:30<03:38,  4.11it/s]
 29%|██▉       | 364/1261 [01:30<03:46,  3.95it/s]
 29%|██▉       | 365/1261 [01:31<03:44,  3.99it/s]
 29%|██▉       | 366/1261 [01:31<03:43,  4.01it/s]
 29%|██▉       | 367/1261 [01:31<03:43,  4.01it/s]
 29%|██▉       | 368/1261 [01:31<03:41,  4.02it/s]
 29%|██▉       | 369/1261 [01:32<03:39,  4.07it/s]
 29%|██▉       | 370/1261 [01:32<03:37,  4.10it/s]
 29%|██▉       | 371/1261 [01:32<03:38,  4.08it/s]
 30%|██▉       | 372/1261 [01:32<03:37,  4.09it/s]
 30%|██▉       | 373/1261 [01:33<03:36,  4.09it/s]
 30%|██▉       | 374/1261 [01:33<03:37,  4.08it/s]
 30%|██▉       | 375/1261 [01:33<03:36,  4.10it/s]
 30%|██▉       | 376/1261 [01:33<03:34,  4.12it/s]
 30%|██▉       | 377/1261 [01:34<03:33,  4.15it/s]
 30%|██▉       | 378/1261 [01:34<03:33,  4.13it/s]
 30%|███       | 379/1261 [01:34<03:35,  4.09it/s]
 30%|███       | 380/1261 [01:34<03:34,  4.10it/s]
 30%|███       | 381/1261 [01:35<03:33,  4.12it/s]
 30%|███       | 382/1261 [01:35<03:32,  4.13it/s]
 30%|███       | 383/1261 [01:35<03:34,  4.10it/s]
 30%|███       | 384/1261 [01:35<03:36,  4.06it/s]
 31%|███       | 385/1261 [01:36<03:33,  4.10it/s]
 31%|███       | 386/1261 [01:36<03:31,  4.14it/s]
 31%|███       | 387/1261 [01:36<03:31,  4.13it/s]
 31%|███       | 388/1261 [01:36<03:33,  4.09it/s]
 31%|███       | 389/1261 [01:37<03:33,  4.09it/s]
 31%|███       | 390/1261 [01:37<03:32,  4.10it/s]
 31%|███       | 391/1261 [01:37<03:30,  4.14it/s]
 31%|███       | 392/1261 [01:37<03:29,  4.15it/s]
 31%|███       | 393/1261 [01:37<03:29,  4.15it/s]
 31%|███       | 394/1261 [01:38<03:28,  4.16it/s]
 31%|███▏      | 395/1261 [01:38<03:29,  4.14it/s]
 31%|███▏      | 396/1261 [01:38<03:28,  4.15it/s]
 31%|███▏      | 397/1261 [01:38<03:28,  4.14it/s]
 32%|███▏      | 398/1261 [01:39<03:28,  4.14it/s]
 32%|███▏      | 399/1261 [01:39<03:27,  4.15it/s]
 32%|███▏      | 400/1261 [01:39<03:27,  4.14it/s]
 32%|███▏      | 401/1261 [01:39<03:27,  4.14it/s]
 32%|███▏      | 402/1261 [01:40<03:29,  4.10it/s]
 32%|███▏      | 403/1261 [01:40<03:28,  4.12it/s]
 32%|███▏      | 404/1261 [01:40<03:28,  4.11it/s]
 32%|███▏      | 405/1261 [01:40<03:27,  4.12it/s]
 32%|███▏      | 406/1261 [01:41<03:27,  4.12it/s]
 32%|███▏      | 407/1261 [01:41<03:26,  4.13it/s]
 32%|███▏      | 408/1261 [01:41<03:27,  4.10it/s]
 32%|███▏      | 409/1261 [01:41<03:26,  4.12it/s]
 33%|███▎      | 410/1261 [01:42<03:25,  4.15it/s]
 33%|███▎      | 411/1261 [01:42<03:25,  4.14it/s]
 33%|███▎      | 412/1261 [01:42<03:25,  4.13it/s]
 33%|███▎      | 413/1261 [01:42<03:26,  4.11it/s]
 33%|███▎      | 414/1261 [01:43<03:24,  4.14it/s]
 33%|███▎      | 415/1261 [01:43<03:26,  4.09it/s]
 33%|███▎      | 416/1261 [01:43<03:26,  4.10it/s]
 33%|███▎      | 417/1261 [01:43<03:27,  4.07it/s]
 33%|███▎      | 418/1261 [01:44<03:25,  4.10it/s]
 33%|███▎      | 419/1261 [01:44<03:25,  4.09it/s]
 33%|███▎      | 420/1261 [01:44<03:24,  4.11it/s]
 33%|███▎      | 421/1261 [01:44<03:21,  4.16it/s]
 33%|███▎      | 422/1261 [01:45<03:23,  4.11it/s]
 34%|███▎      | 423/1261 [01:45<03:22,  4.14it/s]
 34%|███▎      | 424/1261 [01:45<03:24,  4.10it/s]
 34%|███▎      | 425/1261 [01:45<03:23,  4.11it/s]
 34%|███▍      | 426/1261 [01:46<03:26,  4.05it/s]
 34%|███▍      | 427/1261 [01:46<03:25,  4.06it/s]
 34%|███▍      | 428/1261 [01:46<03:26,  4.04it/s]
 34%|███▍      | 429/1261 [01:46<03:26,  4.03it/s]
 34%|███▍      | 430/1261 [01:47<03:27,  4.01it/s]
 34%|███▍      | 431/1261 [01:47<03:24,  4.06it/s]
 34%|███▍      | 432/1261 [01:47<03:22,  4.10it/s]
 34%|███▍      | 433/1261 [01:47<03:20,  4.12it/s]
 34%|███▍      | 434/1261 [01:47<03:20,  4.12it/s]
 34%|███▍      | 435/1261 [01:48<03:19,  4.14it/s]
 35%|███▍      | 436/1261 [01:48<03:18,  4.16it/s]
 35%|███▍      | 437/1261 [01:48<03:18,  4.16it/s]
 35%|███▍      | 438/1261 [01:48<03:17,  4.17it/s]
 35%|███▍      | 439/1261 [01:49<03:16,  4.18it/s]
 35%|███▍      | 440/1261 [01:49<03:16,  4.18it/s]
 35%|███▍      | 441/1261 [01:49<03:17,  4.16it/s]
 35%|███▌      | 442/1261 [01:49<03:18,  4.13it/s]
 35%|███▌      | 443/1261 [01:50<03:16,  4.16it/s]
 35%|███▌      | 444/1261 [01:50<03:18,  4.13it/s]
 35%|███▌      | 445/1261 [01:50<03:16,  4.15it/s]
 35%|███▌      | 446/1261 [01:50<03:16,  4.15it/s]
 35%|███▌      | 447/1261 [01:51<03:15,  4.16it/s]
 36%|███▌      | 448/1261 [01:51<03:15,  4.17it/s]
 36%|███▌      | 449/1261 [01:51<03:14,  4.16it/s]
 36%|███▌      | 450/1261 [01:51<03:17,  4.11it/s]
 36%|███▌      | 451/1261 [01:52<03:17,  4.10it/s]
 36%|███▌      | 452/1261 [01:52<03:16,  4.12it/s]
 36%|███▌      | 453/1261 [01:52<03:15,  4.13it/s]
 36%|███▌      | 454/1261 [01:52<03:13,  4.17it/s]
 36%|███▌      | 455/1261 [01:53<03:12,  4.19it/s]
 36%|███▌      | 456/1261 [01:53<03:11,  4.21it/s]
 36%|███▌      | 457/1261 [01:53<03:11,  4.19it/s]
 36%|███▋      | 458/1261 [01:53<03:13,  4.16it/s]
 36%|███▋      | 459/1261 [01:53<03:17,  4.06it/s]
 36%|███▋      | 460/1261 [01:54<03:15,  4.10it/s]
 37%|███▋      | 461/1261 [01:54<03:15,  4.09it/s]
 37%|███▋      | 462/1261 [01:54<03:14,  4.11it/s]
 37%|███▋      | 463/1261 [01:54<03:12,  4.14it/s]
 37%|███▋      | 464/1261 [01:55<03:11,  4.16it/s]
 37%|███▋      | 465/1261 [01:55<03:11,  4.16it/s]
 37%|███▋      | 466/1261 [01:55<03:11,  4.15it/s]
 37%|███▋      | 467/1261 [01:55<03:11,  4.14it/s]
 37%|███▋      | 468/1261 [01:56<03:10,  4.17it/s]
 37%|███▋      | 469/1261 [01:56<03:12,  4.10it/s]
 37%|███▋      | 470/1261 [01:56<03:13,  4.09it/s]
 37%|███▋      | 471/1261 [01:56<03:12,  4.10it/s]
 37%|███▋      | 472/1261 [01:57<03:12,  4.10it/s]
 38%|███▊      | 473/1261 [01:57<03:12,  4.09it/s]
 38%|███▊      | 474/1261 [01:57<03:12,  4.08it/s]
 38%|███▊      | 475/1261 [01:57<03:13,  4.07it/s]
 38%|███▊      | 476/1261 [01:58<03:14,  4.04it/s]
 38%|███▊      | 477/1261 [01:58<03:12,  4.08it/s]
 38%|███▊      | 478/1261 [01:58<03:10,  4.12it/s]
 38%|███▊      | 479/1261 [01:58<03:09,  4.12it/s]
 38%|███▊      | 480/1261 [01:59<03:08,  4.15it/s]
 38%|███▊      | 481/1261 [01:59<03:06,  4.17it/s]
 38%|███▊      | 482/1261 [01:59<03:08,  4.12it/s]
 38%|███▊      | 483/1261 [01:59<03:09,  4.10it/s]
 38%|███▊      | 484/1261 [02:00<03:07,  4.14it/s]
 38%|███▊      | 485/1261 [02:00<03:08,  4.13it/s]
 39%|███▊      | 486/1261 [02:00<03:06,  4.15it/s]
 39%|███▊      | 487/1261 [02:00<03:06,  4.15it/s]
 39%|███▊      | 488/1261 [02:01<03:03,  4.20it/s]
 39%|███▉      | 489/1261 [02:01<03:03,  4.21it/s]
 39%|███▉      | 490/1261 [02:01<03:02,  4.23it/s]
 39%|███▉      | 491/1261 [02:01<03:02,  4.23it/s]
 39%|███▉      | 492/1261 [02:01<03:03,  4.20it/s]
 39%|███▉      | 493/1261 [02:02<03:04,  4.17it/s]
 39%|███▉      | 494/1261 [02:02<03:04,  4.17it/s]
 39%|███▉      | 495/1261 [02:02<03:02,  4.19it/s]
 39%|███▉      | 496/1261 [02:02<03:02,  4.20it/s]
 39%|███▉      | 497/1261 [02:03<03:02,  4.20it/s]
 39%|███▉      | 498/1261 [02:03<03:01,  4.21it/s]
 40%|███▉      | 499/1261 [02:03<03:00,  4.22it/s]
 40%|███▉      | 500/1261 [02:03<03:01,  4.20it/s]
 40%|███▉      | 501/1261 [02:04<03:01,  4.19it/s]
 40%|███▉      | 502/1261 [02:04<03:00,  4.21it/s]
 40%|███▉      | 503/1261 [02:04<02:59,  4.22it/s]
 40%|███▉      | 504/1261 [02:04<03:00,  4.20it/s]
 40%|████      | 505/1261 [02:05<03:02,  4.15it/s]
 40%|████      | 506/1261 [02:05<03:01,  4.17it/s]
 40%|████      | 507/1261 [02:05<03:00,  4.18it/s]
 40%|████      | 508/1261 [02:05<02:59,  4.19it/s]
 40%|████      | 509/1261 [02:06<02:59,  4.19it/s]
 40%|████      | 510/1261 [02:06<03:00,  4.15it/s]
 41%|████      | 511/1261 [02:06<02:58,  4.20it/s]
 41%|████      | 512/1261 [02:06<02:57,  4.23it/s]
 41%|████      | 513/1261 [02:06<02:58,  4.20it/s]
 41%|████      | 514/1261 [02:07<02:57,  4.22it/s]
 41%|████      | 515/1261 [02:07<02:55,  4.24it/s]
 41%|████      | 516/1261 [02:07<02:55,  4.24it/s]
 41%|████      | 517/1261 [02:07<02:57,  4.19it/s]
 41%|████      | 518/1261 [02:08<02:57,  4.20it/s]
 41%|████      | 519/1261 [02:08<02:55,  4.22it/s]
 41%|████      | 520/1261 [02:08<02:54,  4.25it/s]
 41%|████▏     | 521/1261 [02:08<02:55,  4.21it/s]
 41%|████▏     | 522/1261 [02:09<02:56,  4.18it/s]
 41%|████▏     | 523/1261 [02:09<02:55,  4.21it/s]
 42%|████▏     | 524/1261 [02:09<02:53,  4.24it/s]
 42%|████▏     | 525/1261 [02:09<02:54,  4.21it/s]
 42%|████▏     | 526/1261 [02:10<02:54,  4.22it/s]
 42%|████▏     | 527/1261 [02:10<02:53,  4.24it/s]
 42%|████▏     | 528/1261 [02:10<02:53,  4.22it/s]
 42%|████▏     | 529/1261 [02:10<02:55,  4.17it/s]
 42%|████▏     | 530/1261 [02:11<02:53,  4.21it/s]
 42%|████▏     | 531/1261 [02:11<02:52,  4.23it/s]
 42%|████▏     | 532/1261 [02:11<02:52,  4.23it/s]
 42%|████▏     | 533/1261 [02:11<02:53,  4.20it/s]
 42%|████▏     | 534/1261 [02:11<02:53,  4.19it/s]
 42%|████▏     | 535/1261 [02:12<02:52,  4.22it/s]
 43%|████▎     | 536/1261 [02:12<02:51,  4.22it/s]
 43%|████▎     | 537/1261 [02:12<02:50,  4.24it/s]
 43%|████▎     | 538/1261 [02:12<02:51,  4.23it/s]
 43%|████▎     | 539/1261 [02:13<02:51,  4.20it/s]
 43%|████▎     | 540/1261 [02:13<02:50,  4.22it/s]
 43%|████▎     | 541/1261 [02:13<02:49,  4.25it/s]
 43%|████▎     | 542/1261 [02:13<02:51,  4.20it/s]
 43%|████▎     | 543/1261 [02:14<02:49,  4.23it/s]
 43%|████▎     | 544/1261 [02:14<02:48,  4.26it/s]
 43%|████▎     | 545/1261 [02:14<02:47,  4.26it/s]
 43%|████▎     | 546/1261 [02:14<02:49,  4.21it/s]
 43%|████▎     | 547/1261 [02:15<02:49,  4.21it/s]
 43%|████▎     | 548/1261 [02:15<02:48,  4.22it/s]
 44%|████▎     | 549/1261 [02:15<02:48,  4.22it/s]
 44%|████▎     | 550/1261 [02:15<02:49,  4.20it/s]
 44%|████▎     | 551/1261 [02:15<02:49,  4.18it/s]
 44%|████▍     | 552/1261 [02:16<02:49,  4.17it/s]
 44%|████▍     | 553/1261 [02:16<02:49,  4.18it/s]
 44%|████▍     | 554/1261 [02:16<02:50,  4.16it/s]
 44%|████▍     | 555/1261 [02:16<02:50,  4.14it/s]
 44%|████▍     | 556/1261 [02:17<02:50,  4.14it/s]
 44%|████▍     | 557/1261 [02:17<02:48,  4.17it/s]
 44%|████▍     | 558/1261 [02:17<02:49,  4.15it/s]
 44%|████▍     | 559/1261 [02:17<02:50,  4.12it/s]
 44%|████▍     | 560/1261 [02:18<02:49,  4.13it/s]
 44%|████▍     | 561/1261 [02:18<02:48,  4.14it/s]
 45%|████▍     | 562/1261 [02:18<02:47,  4.16it/s]
 45%|████▍     | 563/1261 [02:18<02:49,  4.11it/s]
 45%|████▍     | 564/1261 [02:19<02:49,  4.11it/s]
 45%|████▍     | 565/1261 [02:19<02:48,  4.13it/s]
 45%|████▍     | 566/1261 [02:19<02:47,  4.14it/s]
 45%|████▍     | 567/1261 [02:19<02:48,  4.11it/s]
 45%|████▌     | 568/1261 [02:20<02:48,  4.11it/s]
 45%|████▌     | 569/1261 [02:20<02:47,  4.13it/s]
 45%|████▌     | 570/1261 [02:20<02:46,  4.15it/s]
 45%|████▌     | 571/1261 [02:20<02:44,  4.18it/s]
 45%|████▌     | 572/1261 [02:21<02:43,  4.20it/s]
 45%|████▌     | 573/1261 [02:21<02:42,  4.25it/s]
 46%|████▌     | 574/1261 [02:21<02:41,  4.24it/s]
 46%|████▌     | 575/1261 [02:21<02:41,  4.24it/s]
 46%|████▌     | 576/1261 [02:21<02:41,  4.23it/s]
 46%|████▌     | 577/1261 [02:22<02:41,  4.23it/s]
 46%|████▌     | 578/1261 [02:22<02:44,  4.16it/s]
 46%|████▌     | 579/1261 [02:22<02:45,  4.11it/s]
 46%|████▌     | 580/1261 [02:22<02:46,  4.09it/s]
 46%|████▌     | 581/1261 [02:23<02:44,  4.14it/s]
 46%|████▌     | 582/1261 [02:23<02:43,  4.14it/s]
 46%|████▌     | 583/1261 [02:23<02:44,  4.11it/s]
 46%|████▋     | 584/1261 [02:23<02:44,  4.12it/s]
 46%|████▋     | 585/1261 [02:24<02:44,  4.11it/s]
 46%|████▋     | 586/1261 [02:24<02:43,  4.14it/s]
 47%|████▋     | 587/1261 [02:24<02:43,  4.11it/s]
 47%|████▋     | 588/1261 [02:24<02:43,  4.12it/s]
 47%|████▋     | 589/1261 [02:25<02:42,  4.15it/s]
 47%|████▋     | 590/1261 [02:25<02:41,  4.15it/s]
 47%|████▋     | 591/1261 [02:25<02:40,  4.17it/s]
 47%|████▋     | 592/1261 [02:25<02:40,  4.18it/s]
 47%|████▋     | 593/1261 [02:26<02:40,  4.16it/s]
 47%|████▋     | 594/1261 [02:26<02:40,  4.15it/s]
 47%|████▋     | 595/1261 [02:26<02:39,  4.17it/s]
 47%|████▋     | 596/1261 [02:26<02:39,  4.18it/s]
 47%|████▋     | 597/1261 [02:27<02:38,  4.19it/s]
 47%|████▋     | 598/1261 [02:27<02:38,  4.19it/s]
 48%|████▊     | 599/1261 [02:27<02:37,  4.21it/s]
 48%|████▊     | 600/1261 [02:27<02:38,  4.18it/s]
 48%|████▊     | 601/1261 [02:28<02:36,  4.22it/s]
 48%|████▊     | 602/1261 [02:28<02:34,  4.27it/s]
 48%|████▊     | 603/1261 [02:28<02:33,  4.27it/s]
 48%|████▊     | 604/1261 [02:28<02:35,  4.23it/s]
 48%|████▊     | 605/1261 [02:28<02:36,  4.19it/s]
 48%|████▊     | 606/1261 [02:29<02:39,  4.10it/s]
 48%|████▊     | 607/1261 [02:29<02:44,  3.97it/s]
 48%|████▊     | 608/1261 [02:29<02:42,  4.01it/s]
 48%|████▊     | 609/1261 [02:29<02:44,  3.96it/s]
 48%|████▊     | 610/1261 [02:30<02:42,  4.01it/s]
 48%|████▊     | 611/1261 [02:30<02:45,  3.94it/s]
 49%|████▊     | 612/1261 [02:30<02:42,  4.00it/s]
 49%|████▊     | 613/1261 [02:30<02:40,  4.03it/s]
 49%|████▊     | 614/1261 [02:31<02:39,  4.06it/s]
 49%|████▉     | 615/1261 [02:31<02:40,  4.03it/s]
 49%|████▉     | 616/1261 [02:31<02:42,  3.97it/s]
 49%|████▉     | 617/1261 [02:31<02:44,  3.93it/s]
 49%|████▉     | 618/1261 [02:32<02:44,  3.90it/s]
 49%|████▉     | 619/1261 [02:32<02:43,  3.94it/s]
 49%|████▉     | 620/1261 [02:32<02:44,  3.91it/s]
 49%|████▉     | 621/1261 [02:33<02:42,  3.94it/s]
 49%|████▉     | 622/1261 [02:33<02:40,  3.98it/s]
 49%|████▉     | 623/1261 [02:33<02:40,  3.96it/s]
 49%|████▉     | 624/1261 [02:33<02:39,  3.98it/s]
 50%|████▉     | 625/1261 [02:33<02:37,  4.03it/s]
 50%|████▉     | 626/1261 [02:34<02:36,  4.05it/s]
 50%|████▉     | 627/1261 [02:34<02:37,  4.01it/s]
 50%|████▉     | 628/1261 [02:34<02:40,  3.95it/s]
 50%|████▉     | 629/1261 [02:35<02:40,  3.94it/s]
 50%|████▉     | 630/1261 [02:35<02:42,  3.89it/s]
 50%|█████     | 631/1261 [02:35<02:39,  3.94it/s]
 50%|█████     | 632/1261 [02:35<02:39,  3.94it/s]
 50%|█████     | 633/1261 [02:36<02:39,  3.94it/s]
 50%|█████     | 634/1261 [02:36<02:38,  3.96it/s]
 50%|█████     | 635/1261 [02:36<02:41,  3.88it/s]
 50%|█████     | 636/1261 [02:36<02:39,  3.91it/s]
 51%|█████     | 637/1261 [02:37<02:39,  3.90it/s]
 51%|█████     | 638/1261 [02:37<02:41,  3.86it/s]
 51%|█████     | 639/1261 [02:37<02:40,  3.87it/s]
 51%|█████     | 640/1261 [02:37<02:38,  3.92it/s]
 51%|█████     | 641/1261 [02:38<02:35,  3.99it/s]
 51%|█████     | 642/1261 [02:38<02:36,  3.97it/s]
 51%|█████     | 643/1261 [02:38<02:40,  3.84it/s]
 51%|█████     | 644/1261 [02:38<02:41,  3.82it/s]
 51%|█████     | 645/1261 [02:39<02:38,  3.89it/s]
 51%|█████     | 646/1261 [02:39<02:35,  3.95it/s]
 51%|█████▏    | 647/1261 [02:39<02:33,  3.99it/s]
 51%|█████▏    | 648/1261 [02:39<02:32,  4.03it/s]
 51%|█████▏    | 649/1261 [02:40<02:30,  4.05it/s]
 52%|█████▏    | 650/1261 [02:40<02:29,  4.10it/s]
 52%|█████▏    | 651/1261 [02:40<02:27,  4.14it/s]
 52%|█████▏    | 652/1261 [02:40<02:25,  4.18it/s]
 52%|█████▏    | 653/1261 [02:41<02:24,  4.20it/s]
 52%|█████▏    | 654/1261 [02:41<02:24,  4.20it/s]
 52%|█████▏    | 655/1261 [02:41<02:24,  4.21it/s]
 52%|█████▏    | 656/1261 [02:41<02:24,  4.18it/s]
 52%|█████▏    | 657/1261 [02:41<02:23,  4.21it/s]
 52%|█████▏    | 658/1261 [02:42<02:23,  4.19it/s]
 52%|█████▏    | 659/1261 [02:42<02:23,  4.19it/s]
 52%|█████▏    | 660/1261 [02:42<02:24,  4.16it/s]
 52%|█████▏    | 661/1261 [02:42<02:23,  4.17it/s]
 52%|█████▏    | 662/1261 [02:43<02:23,  4.17it/s]
 53%|█████▎    | 663/1261 [02:43<02:23,  4.15it/s]
 53%|█████▎    | 664/1261 [02:43<02:22,  4.20it/s]
 53%|█████▎    | 665/1261 [02:43<02:22,  4.18it/s]
 53%|█████▎    | 666/1261 [02:44<02:22,  4.17it/s]
 53%|█████▎    | 667/1261 [02:44<02:26,  4.07it/s]
 53%|█████▎    | 668/1261 [02:44<02:27,  4.02it/s]
 53%|█████▎    | 669/1261 [02:44<02:27,  4.02it/s]
 53%|█████▎    | 670/1261 [02:45<02:26,  4.03it/s]
 53%|█████▎    | 671/1261 [02:45<02:34,  3.82it/s]
 53%|█████▎    | 672/1261 [02:45<02:34,  3.80it/s]
 53%|█████▎    | 673/1261 [02:46<02:39,  3.69it/s]
 53%|█████▎    | 674/1261 [02:46<02:39,  3.69it/s]
 54%|█████▎    | 675/1261 [02:46<02:36,  3.73it/s]
 54%|█████▎    | 676/1261 [02:46<02:36,  3.75it/s]
 54%|█████▎    | 677/1261 [02:47<02:35,  3.75it/s]
 54%|█████▍    | 678/1261 [02:47<02:42,  3.58it/s]
 54%|█████▍    | 679/1261 [02:47<02:38,  3.66it/s]
 54%|█████▍    | 680/1261 [02:47<02:37,  3.70it/s]
 54%|█████▍    | 681/1261 [02:48<02:39,  3.63it/s]
 54%|█████▍    | 682/1261 [02:48<02:45,  3.50it/s]
 54%|█████▍    | 683/1261 [02:48<02:47,  3.46it/s]
 54%|█████▍    | 684/1261 [02:49<02:48,  3.43it/s]
 54%|█████▍    | 685/1261 [02:49<02:45,  3.49it/s]
 54%|█████▍    | 686/1261 [02:49<02:50,  3.38it/s]
 54%|█████▍    | 687/1261 [02:49<02:43,  3.52it/s]
 55%|█████▍    | 688/1261 [02:50<02:41,  3.55it/s]
 55%|█████▍    | 689/1261 [02:50<02:45,  3.46it/s]
 55%|█████▍    | 690/1261 [02:50<02:40,  3.55it/s]
 55%|█████▍    | 691/1261 [02:51<02:35,  3.66it/s]
 55%|█████▍    | 692/1261 [02:51<02:36,  3.64it/s]
 55%|█████▍    | 693/1261 [02:51<02:33,  3.70it/s]
 55%|█████▌    | 694/1261 [02:51<02:32,  3.71it/s]
 55%|█████▌    | 695/1261 [02:52<02:39,  3.55it/s]
 55%|█████▌    | 696/1261 [02:52<02:36,  3.61it/s]
 55%|█████▌    | 697/1261 [02:52<02:35,  3.63it/s]
 55%|█████▌    | 698/1261 [02:52<02:33,  3.68it/s]
 55%|█████▌    | 699/1261 [02:53<02:32,  3.68it/s]
 56%|█████▌    | 700/1261 [02:53<02:32,  3.68it/s]
 56%|█████▌    | 701/1261 [02:53<02:32,  3.68it/s]
 56%|█████▌    | 702/1261 [02:54<02:31,  3.69it/s]
 56%|█████▌    | 703/1261 [02:54<02:29,  3.74it/s]
 56%|█████▌    | 704/1261 [02:54<02:28,  3.74it/s]
 56%|█████▌    | 705/1261 [02:54<02:30,  3.70it/s]
 56%|█████▌    | 706/1261 [02:55<02:29,  3.71it/s]
 56%|█████▌    | 707/1261 [02:55<02:27,  3.76it/s]
 56%|█████▌    | 708/1261 [02:55<02:26,  3.78it/s]
 56%|█████▌    | 709/1261 [02:55<02:26,  3.77it/s]
 56%|█████▋    | 710/1261 [02:56<02:26,  3.77it/s]
 56%|█████▋    | 711/1261 [02:56<02:25,  3.77it/s]
 56%|█████▋    | 712/1261 [02:56<02:31,  3.62it/s]
 57%|█████▋    | 713/1261 [02:57<02:30,  3.63it/s]
 57%|█████▋    | 714/1261 [02:57<02:27,  3.71it/s]
 57%|█████▋    | 715/1261 [02:57<02:26,  3.73it/s]
 57%|█████▋    | 716/1261 [02:57<02:27,  3.69it/s]
 57%|█████▋    | 717/1261 [02:58<02:28,  3.67it/s]
 57%|█████▋    | 718/1261 [02:58<02:27,  3.69it/s]
 57%|█████▋    | 719/1261 [02:58<02:24,  3.75it/s]
 57%|█████▋    | 720/1261 [02:58<02:23,  3.77it/s]
 57%|█████▋    | 721/1261 [02:59<02:24,  3.74it/s]
 57%|█████▋    | 722/1261 [02:59<02:26,  3.67it/s]
 57%|█████▋    | 723/1261 [02:59<02:26,  3.68it/s]
 57%|█████▋    | 724/1261 [02:59<02:29,  3.58it/s]
 57%|█████▋    | 725/1261 [03:00<02:27,  3.64it/s]
 58%|█████▊    | 726/1261 [03:00<02:24,  3.70it/s]
 58%|█████▊    | 727/1261 [03:00<02:27,  3.61it/s]
 58%|█████▊    | 728/1261 [03:01<02:25,  3.67it/s]
 58%|█████▊    | 729/1261 [03:01<02:22,  3.74it/s]
 58%|█████▊    | 730/1261 [03:01<02:19,  3.80it/s]
 58%|█████▊    | 731/1261 [03:01<02:17,  3.85it/s]
 58%|█████▊    | 732/1261 [03:02<02:15,  3.91it/s]
 58%|█████▊    | 733/1261 [03:02<02:13,  3.95it/s]
 58%|█████▊    | 734/1261 [03:02<02:12,  3.99it/s]
 58%|█████▊    | 735/1261 [03:02<02:12,  3.97it/s]
 58%|█████▊    | 736/1261 [03:03<02:11,  4.00it/s]
 58%|█████▊    | 737/1261 [03:03<02:09,  4.04it/s]
 59%|█████▊    | 738/1261 [03:03<02:09,  4.05it/s]
 59%|█████▊    | 739/1261 [03:03<02:08,  4.06it/s]
 59%|█████▊    | 740/1261 [03:04<02:07,  4.08it/s]
 59%|█████▉    | 741/1261 [03:04<02:09,  4.01it/s]
 59%|█████▉    | 742/1261 [03:04<02:08,  4.04it/s]
 59%|█████▉    | 743/1261 [03:04<02:08,  4.03it/s]
 59%|█████▉    | 744/1261 [03:05<02:07,  4.07it/s]
 59%|█████▉    | 745/1261 [03:05<02:06,  4.07it/s]
 59%|█████▉    | 746/1261 [03:05<02:06,  4.07it/s]
 59%|█████▉    | 747/1261 [03:05<02:06,  4.06it/s]
 59%|█████▉    | 748/1261 [03:06<02:07,  4.03it/s]
 59%|█████▉    | 749/1261 [03:06<02:07,  4.01it/s]
 59%|█████▉    | 750/1261 [03:06<02:08,  3.96it/s]
 60%|█████▉    | 751/1261 [03:06<02:08,  3.97it/s]
 60%|█████▉    | 752/1261 [03:07<02:08,  3.96it/s]
 60%|█████▉    | 753/1261 [03:07<02:07,  3.98it/s]
 60%|█████▉    | 754/1261 [03:07<02:07,  3.98it/s]
 60%|█████▉    | 755/1261 [03:07<02:08,  3.94it/s]
 60%|█████▉    | 756/1261 [03:08<02:07,  3.95it/s]
 60%|██████    | 757/1261 [03:08<02:09,  3.91it/s]
 60%|██████    | 758/1261 [03:08<02:08,  3.90it/s]
 60%|██████    | 759/1261 [03:08<02:09,  3.89it/s]
 60%|██████    | 760/1261 [03:09<02:07,  3.93it/s]
 60%|██████    | 761/1261 [03:09<02:07,  3.92it/s]
 60%|██████    | 762/1261 [03:09<02:06,  3.95it/s]
 61%|██████    | 763/1261 [03:09<02:08,  3.89it/s]
 61%|██████    | 764/1261 [03:10<02:07,  3.89it/s]
 61%|██████    | 765/1261 [03:10<02:06,  3.93it/s]
 61%|██████    | 766/1261 [03:10<02:05,  3.96it/s]
 61%|██████    | 767/1261 [03:10<02:05,  3.93it/s]
 61%|██████    | 768/1261 [03:11<02:04,  3.96it/s]
 61%|██████    | 769/1261 [03:11<02:02,  4.00it/s]
 61%|██████    | 770/1261 [03:11<02:03,  3.99it/s]
 61%|██████    | 771/1261 [03:11<02:02,  3.99it/s]
 61%|██████    | 772/1261 [03:12<02:03,  3.96it/s]
 61%|██████▏   | 773/1261 [03:12<02:02,  3.99it/s]
 61%|██████▏   | 774/1261 [03:12<02:00,  4.03it/s]
 61%|██████▏   | 775/1261 [03:12<02:00,  4.02it/s]
 62%|██████▏   | 776/1261 [03:13<02:00,  4.04it/s]
 62%|██████▏   | 777/1261 [03:13<01:59,  4.05it/s]
 62%|██████▏   | 778/1261 [03:13<01:59,  4.05it/s]
 62%|██████▏   | 779/1261 [03:13<02:01,  3.96it/s]
 62%|██████▏   | 780/1261 [03:14<02:00,  3.99it/s]
 62%|██████▏   | 781/1261 [03:14<02:00,  3.99it/s]
 62%|██████▏   | 782/1261 [03:14<02:00,  3.99it/s]
 62%|██████▏   | 783/1261 [03:14<01:59,  3.99it/s]
 62%|██████▏   | 784/1261 [03:15<01:58,  4.02it/s]
 62%|██████▏   | 785/1261 [03:15<01:57,  4.05it/s]
 62%|██████▏   | 786/1261 [03:15<01:56,  4.07it/s]
 62%|██████▏   | 787/1261 [03:15<01:56,  4.06it/s]
 62%|██████▏   | 788/1261 [03:16<02:00,  3.94it/s]
 63%|██████▎   | 789/1261 [03:16<01:59,  3.96it/s]
 63%|██████▎   | 790/1261 [03:16<01:58,  3.97it/s]
 63%|██████▎   | 791/1261 [03:16<01:58,  3.97it/s]
 63%|██████▎   | 792/1261 [03:17<01:56,  4.01it/s]
 63%|██████▎   | 793/1261 [03:17<01:57,  3.97it/s]
 63%|██████▎   | 794/1261 [03:17<01:59,  3.92it/s]
 63%|██████▎   | 795/1261 [03:17<02:02,  3.81it/s]
 63%|██████▎   | 796/1261 [03:18<02:04,  3.74it/s]
 63%|██████▎   | 797/1261 [03:18<02:02,  3.77it/s]
 63%|██████▎   | 798/1261 [03:18<02:03,  3.75it/s]
 63%|██████▎   | 799/1261 [03:18<02:02,  3.76it/s]
 63%|██████▎   | 800/1261 [03:19<01:59,  3.86it/s]
 64%|██████▎   | 801/1261 [03:19<01:57,  3.92it/s]
 64%|██████▎   | 802/1261 [03:19<01:57,  3.90it/s]
 64%|██████▎   | 803/1261 [03:20<02:03,  3.72it/s]
 64%|██████▍   | 804/1261 [03:20<02:05,  3.65it/s]
 64%|██████▍   | 805/1261 [03:20<02:05,  3.65it/s]
 64%|██████▍   | 806/1261 [03:20<02:07,  3.57it/s]
 64%|██████▍   | 807/1261 [03:21<02:03,  3.68it/s]
 64%|██████▍   | 808/1261 [03:21<02:02,  3.70it/s]
 64%|██████▍   | 809/1261 [03:21<02:00,  3.76it/s]
 64%|██████▍   | 810/1261 [03:21<01:59,  3.79it/s]
 64%|██████▍   | 811/1261 [03:22<01:57,  3.83it/s]
 64%|██████▍   | 812/1261 [03:22<01:56,  3.84it/s]
 64%|██████▍   | 813/1261 [03:22<01:56,  3.86it/s]
 65%|██████▍   | 814/1261 [03:22<02:00,  3.70it/s]
 65%|██████▍   | 815/1261 [03:23<02:03,  3.62it/s]
 65%|██████▍   | 816/1261 [03:23<02:01,  3.66it/s]
 65%|██████▍   | 817/1261 [03:23<02:00,  3.69it/s]
 65%|██████▍   | 818/1261 [03:24<01:59,  3.72it/s]
 65%|██████▍   | 819/1261 [03:24<02:01,  3.62it/s]
 65%|██████▌   | 820/1261 [03:24<02:10,  3.39it/s]
 65%|██████▌   | 821/1261 [03:25<02:12,  3.31it/s]
 65%|██████▌   | 822/1261 [03:25<02:07,  3.44it/s]
 65%|██████▌   | 823/1261 [03:25<02:01,  3.59it/s]
 65%|██████▌   | 824/1261 [03:25<01:56,  3.74it/s]
 65%|██████▌   | 825/1261 [03:26<01:55,  3.77it/s]
 66%|██████▌   | 826/1261 [03:26<01:54,  3.79it/s]
 66%|██████▌   | 827/1261 [03:26<01:53,  3.82it/s]
 66%|██████▌   | 828/1261 [03:26<01:51,  3.88it/s]
 66%|██████▌   | 829/1261 [03:27<01:49,  3.95it/s]
 66%|██████▌   | 830/1261 [03:27<01:49,  3.92it/s]
 66%|██████▌   | 831/1261 [03:27<01:48,  3.96it/s]
 66%|██████▌   | 832/1261 [03:27<01:49,  3.91it/s]
 66%|██████▌   | 833/1261 [03:28<01:50,  3.87it/s]
 66%|██████▌   | 834/1261 [03:28<01:49,  3.90it/s]
 66%|██████▌   | 835/1261 [03:28<01:48,  3.94it/s]
 66%|██████▋   | 836/1261 [03:28<01:49,  3.89it/s]
 66%|██████▋   | 837/1261 [03:29<01:48,  3.91it/s]
 66%|██████▋   | 838/1261 [03:29<01:46,  3.97it/s]
 67%|██████▋   | 839/1261 [03:29<01:46,  3.98it/s]
 67%|██████▋   | 840/1261 [03:29<01:44,  4.03it/s]
 67%|██████▋   | 841/1261 [03:30<01:42,  4.09it/s]
 67%|██████▋   | 842/1261 [03:30<01:41,  4.11it/s]
 67%|██████▋   | 843/1261 [03:30<01:43,  4.03it/s]
 67%|██████▋   | 844/1261 [03:30<01:42,  4.05it/s]
 67%|██████▋   | 845/1261 [03:31<01:41,  4.11it/s]
 67%|██████▋   | 846/1261 [03:31<01:41,  4.07it/s]
 67%|██████▋   | 847/1261 [03:31<01:41,  4.06it/s]
 67%|██████▋   | 848/1261 [03:31<01:42,  4.03it/s]
 67%|██████▋   | 849/1261 [03:32<01:42,  4.02it/s]
 67%|██████▋   | 850/1261 [03:32<01:43,  3.97it/s]
 67%|██████▋   | 851/1261 [03:32<01:41,  4.03it/s]
 68%|██████▊   | 852/1261 [03:32<01:40,  4.06it/s]
 68%|██████▊   | 853/1261 [03:33<01:39,  4.10it/s]
 68%|██████▊   | 854/1261 [03:33<01:39,  4.10it/s]
 68%|██████▊   | 855/1261 [03:33<01:38,  4.11it/s]
 68%|██████▊   | 856/1261 [03:33<01:38,  4.10it/s]
 68%|██████▊   | 857/1261 [03:33<01:38,  4.11it/s]
 68%|██████▊   | 858/1261 [03:34<01:38,  4.08it/s]
 68%|██████▊   | 859/1261 [03:34<01:37,  4.11it/s]
 68%|██████▊   | 860/1261 [03:34<01:36,  4.14it/s]
 68%|██████▊   | 861/1261 [03:34<01:37,  4.09it/s]
 68%|██████▊   | 862/1261 [03:35<01:37,  4.08it/s]
 68%|██████▊   | 863/1261 [03:35<01:36,  4.12it/s]
 69%|██████▊   | 864/1261 [03:35<01:36,  4.12it/s]
 69%|██████▊   | 865/1261 [03:35<01:36,  4.10it/s]
 69%|██████▊   | 866/1261 [03:36<01:37,  4.07it/s]
 69%|██████▉   | 867/1261 [03:36<01:35,  4.11it/s]
 69%|██████▉   | 868/1261 [03:36<01:35,  4.11it/s]
 69%|██████▉   | 869/1261 [03:36<01:36,  4.04it/s]
 69%|██████▉   | 870/1261 [03:37<01:36,  4.04it/s]
 69%|██████▉   | 871/1261 [03:37<01:35,  4.06it/s]
 69%|██████▉   | 872/1261 [03:37<01:34,  4.10it/s]
 69%|██████▉   | 873/1261 [03:37<01:35,  4.07it/s]
 69%|██████▉   | 874/1261 [03:38<01:35,  4.04it/s]
 69%|██████▉   | 875/1261 [03:38<01:36,  4.00it/s]
 69%|██████▉   | 876/1261 [03:38<01:36,  3.98it/s]
 70%|██████▉   | 877/1261 [03:38<01:35,  4.00it/s]
 70%|██████▉   | 878/1261 [03:39<01:36,  3.97it/s]
 70%|██████▉   | 879/1261 [03:39<01:35,  3.98it/s]
 70%|██████▉   | 880/1261 [03:39<01:35,  3.98it/s]
 70%|██████▉   | 881/1261 [03:39<01:34,  4.00it/s]
 70%|██████▉   | 882/1261 [03:40<01:36,  3.91it/s]
 70%|███████   | 883/1261 [03:40<01:36,  3.91it/s]
 70%|███████   | 884/1261 [03:40<01:36,  3.91it/s]
 70%|███████   | 885/1261 [03:40<01:35,  3.94it/s]
 70%|███████   | 886/1261 [03:41<01:34,  3.95it/s]
 70%|███████   | 887/1261 [03:41<01:34,  3.95it/s]
 70%|███████   | 888/1261 [03:41<01:35,  3.92it/s]
 70%|███████   | 889/1261 [03:41<01:34,  3.94it/s]
 71%|███████   | 890/1261 [03:42<01:33,  3.97it/s]
 71%|███████   | 891/1261 [03:42<01:34,  3.92it/s]
 71%|███████   | 892/1261 [03:42<01:34,  3.91it/s]
 71%|███████   | 893/1261 [03:42<01:33,  3.92it/s]
 71%|███████   | 894/1261 [03:43<01:34,  3.90it/s]
 71%|███████   | 895/1261 [03:43<01:32,  3.96it/s]
 71%|███████   | 896/1261 [03:43<01:31,  3.99it/s]
 71%|███████   | 897/1261 [03:43<01:31,  4.00it/s]
 71%|███████   | 898/1261 [03:44<01:30,  4.02it/s]
 71%|███████▏  | 899/1261 [03:44<01:29,  4.04it/s]
 71%|███████▏  | 900/1261 [03:44<01:29,  4.05it/s]
 71%|███████▏  | 901/1261 [03:44<01:28,  4.08it/s]
 72%|███████▏  | 902/1261 [03:45<01:27,  4.08it/s]
 72%|███████▏  | 903/1261 [03:45<01:27,  4.11it/s]
 72%|███████▏  | 904/1261 [03:45<01:27,  4.10it/s]
 72%|███████▏  | 905/1261 [03:45<01:26,  4.11it/s]
 72%|███████▏  | 906/1261 [03:46<01:27,  4.07it/s]
 72%|███████▏  | 907/1261 [03:46<01:26,  4.08it/s]
 72%|███████▏  | 908/1261 [03:46<01:26,  4.10it/s]
 72%|███████▏  | 909/1261 [03:46<01:26,  4.07it/s]
 72%|███████▏  | 910/1261 [03:47<01:26,  4.07it/s]
 72%|███████▏  | 911/1261 [03:47<01:25,  4.08it/s]
 72%|███████▏  | 912/1261 [03:47<01:26,  4.06it/s]
 72%|███████▏  | 913/1261 [03:47<01:25,  4.09it/s]
 72%|███████▏  | 914/1261 [03:48<01:25,  4.07it/s]
 73%|███████▎  | 915/1261 [03:48<01:25,  4.06it/s]
 73%|███████▎  | 916/1261 [03:48<01:25,  4.03it/s]
 73%|███████▎  | 917/1261 [03:48<01:24,  4.05it/s]
 73%|███████▎  | 918/1261 [03:49<01:24,  4.05it/s]
 73%|███████▎  | 919/1261 [03:49<01:24,  4.03it/s]
 73%|███████▎  | 920/1261 [03:49<01:24,  4.04it/s]
 73%|███████▎  | 921/1261 [03:49<01:24,  4.03it/s]
 73%|███████▎  | 922/1261 [03:50<01:23,  4.05it/s]
 73%|███████▎  | 923/1261 [03:50<01:23,  4.06it/s]
 73%|███████▎  | 924/1261 [03:50<01:23,  4.05it/s]
 73%|███████▎  | 925/1261 [03:50<01:23,  4.03it/s]
 73%|███████▎  | 926/1261 [03:51<01:23,  4.01it/s]
 74%|███████▎  | 927/1261 [03:51<01:23,  4.01it/s]
 74%|███████▎  | 928/1261 [03:51<01:23,  4.00it/s]
 74%|███████▎  | 929/1261 [03:51<01:23,  3.98it/s]
 74%|███████▍  | 930/1261 [03:52<01:22,  4.01it/s]
 74%|███████▍  | 931/1261 [03:52<01:21,  4.06it/s]
 74%|███████▍  | 932/1261 [03:52<01:21,  4.04it/s]
 74%|███████▍  | 933/1261 [03:52<01:22,  3.97it/s]
 74%|███████▍  | 934/1261 [03:53<01:21,  4.01it/s]
 74%|███████▍  | 935/1261 [03:53<01:21,  4.02it/s]
 74%|███████▍  | 936/1261 [03:53<01:20,  4.03it/s]
 74%|███████▍  | 937/1261 [03:53<01:20,  4.02it/s]
 74%|███████▍  | 938/1261 [03:54<01:20,  4.04it/s]
 74%|███████▍  | 939/1261 [03:54<01:19,  4.07it/s]
 75%|███████▍  | 940/1261 [03:54<01:19,  4.06it/s]
 75%|███████▍  | 941/1261 [03:54<01:19,  4.05it/s]
 75%|███████▍  | 942/1261 [03:55<01:18,  4.07it/s]
 75%|███████▍  | 943/1261 [03:55<01:18,  4.07it/s]
 75%|███████▍  | 944/1261 [03:55<01:18,  4.04it/s]
 75%|███████▍  | 945/1261 [03:55<01:18,  4.04it/s]
 75%|███████▌  | 946/1261 [03:56<01:17,  4.06it/s]
 75%|███████▌  | 947/1261 [03:56<01:17,  4.07it/s]
 75%|███████▌  | 948/1261 [03:56<01:17,  4.06it/s]
 75%|███████▌  | 949/1261 [03:56<01:17,  4.05it/s]
 75%|███████▌  | 950/1261 [03:57<01:16,  4.07it/s]
 75%|███████▌  | 951/1261 [03:57<01:16,  4.07it/s]
 75%|███████▌  | 952/1261 [03:57<01:16,  4.06it/s]
 76%|███████▌  | 953/1261 [03:57<01:15,  4.06it/s]
 76%|███████▌  | 954/1261 [03:58<01:15,  4.08it/s]
 76%|███████▌  | 955/1261 [03:58<01:15,  4.07it/s]
 76%|███████▌  | 956/1261 [03:58<01:16,  3.98it/s]
 76%|███████▌  | 957/1261 [03:58<01:16,  3.96it/s]
 76%|███████▌  | 958/1261 [03:59<01:15,  4.01it/s]
 76%|███████▌  | 959/1261 [03:59<01:14,  4.03it/s]
 76%|███████▌  | 960/1261 [03:59<01:14,  4.03it/s]
 76%|███████▌  | 961/1261 [03:59<01:14,  4.02it/s]
 76%|███████▋  | 962/1261 [04:00<01:14,  4.04it/s]
 76%|███████▋  | 963/1261 [04:00<01:15,  3.96it/s]
 76%|███████▋  | 964/1261 [04:00<01:16,  3.90it/s]
 77%|███████▋  | 965/1261 [04:00<01:16,  3.86it/s]
 77%|███████▋  | 966/1261 [04:01<01:17,  3.80it/s]
 77%|███████▋  | 967/1261 [04:01<01:16,  3.83it/s]
 77%|███████▋  | 968/1261 [04:01<01:16,  3.82it/s]
 77%|███████▋  | 969/1261 [04:01<01:16,  3.81it/s]
 77%|███████▋  | 970/1261 [04:02<01:15,  3.85it/s]
 77%|███████▋  | 971/1261 [04:02<01:14,  3.87it/s]
 77%|███████▋  | 972/1261 [04:02<01:15,  3.84it/s]
 77%|███████▋  | 973/1261 [04:02<01:15,  3.81it/s]
 77%|███████▋  | 974/1261 [04:03<01:14,  3.84it/s]
 77%|███████▋  | 975/1261 [04:03<01:14,  3.86it/s]
 77%|███████▋  | 976/1261 [04:03<01:13,  3.87it/s]
 77%|███████▋  | 977/1261 [04:03<01:13,  3.86it/s]
 78%|███████▊  | 978/1261 [04:04<01:12,  3.92it/s]
 78%|███████▊  | 979/1261 [04:04<01:10,  3.97it/s]
 78%|███████▊  | 980/1261 [04:04<01:11,  3.96it/s]
 78%|███████▊  | 981/1261 [04:04<01:10,  3.98it/s]
 78%|███████▊  | 982/1261 [04:05<01:09,  4.01it/s]
 78%|███████▊  | 983/1261 [04:05<01:08,  4.04it/s]
 78%|███████▊  | 984/1261 [04:05<01:08,  4.03it/s]
 78%|███████▊  | 985/1261 [04:05<01:08,  4.06it/s]
 78%|███████▊  | 986/1261 [04:06<01:08,  4.03it/s]
 78%|███████▊  | 987/1261 [04:06<01:08,  4.01it/s]
 78%|███████▊  | 988/1261 [04:06<01:07,  4.03it/s]
 78%|███████▊  | 989/1261 [04:06<01:07,  4.01it/s]
 79%|███████▊  | 990/1261 [04:07<01:07,  4.02it/s]
 79%|███████▊  | 991/1261 [04:07<01:06,  4.07it/s]
 79%|███████▊  | 992/1261 [04:07<01:05,  4.09it/s]
 79%|███████▊  | 993/1261 [04:07<01:06,  4.05it/s]
 79%|███████▉  | 994/1261 [04:08<01:06,  4.03it/s]
 79%|███████▉  | 995/1261 [04:08<01:06,  4.03it/s]
 79%|███████▉  | 996/1261 [04:08<01:05,  4.05it/s]
 79%|███████▉  | 997/1261 [04:08<01:05,  4.05it/s]
 79%|███████▉  | 998/1261 [04:09<01:04,  4.06it/s]
 79%|███████▉  | 999/1261 [04:09<01:04,  4.06it/s]
 79%|███████▉  | 1000/1261 [04:09<01:05,  4.01it/s]
 79%|███████▉  | 1001/1261 [04:09<01:05,  3.99it/s]
 79%|███████▉  | 1002/1261 [04:10<01:04,  4.02it/s]
 80%|███████▉  | 1003/1261 [04:10<01:04,  4.01it/s]
 80%|███████▉  | 1004/1261 [04:10<01:05,  3.95it/s]
 80%|███████▉  | 1005/1261 [04:10<01:04,  3.94it/s]
 80%|███████▉  | 1006/1261 [04:11<01:04,  3.97it/s]
 80%|███████▉  | 1007/1261 [04:11<01:03,  3.99it/s]
 80%|███████▉  | 1008/1261 [04:11<01:03,  3.97it/s]
 80%|████████  | 1009/1261 [04:11<01:03,  3.94it/s]
 80%|████████  | 1010/1261 [04:12<01:03,  3.97it/s]
 80%|████████  | 1011/1261 [04:12<01:03,  3.95it/s]
 80%|████████  | 1012/1261 [04:12<01:03,  3.92it/s]
 80%|████████  | 1013/1261 [04:12<01:04,  3.82it/s]
 80%|████████  | 1014/1261 [04:13<01:03,  3.87it/s]
 80%|████████  | 1015/1261 [04:13<01:03,  3.86it/s]
 81%|████████  | 1016/1261 [04:13<01:03,  3.86it/s]
 81%|████████  | 1017/1261 [04:13<01:03,  3.87it/s]
 81%|████████  | 1018/1261 [04:14<01:01,  3.93it/s]
 81%|████████  | 1019/1261 [04:14<01:01,  3.95it/s]
 81%|████████  | 1020/1261 [04:14<01:00,  3.97it/s]
 81%|████████  | 1021/1261 [04:14<00:59,  4.03it/s]
 81%|████████  | 1022/1261 [04:15<00:58,  4.06it/s]
 81%|████████  | 1023/1261 [04:15<00:58,  4.07it/s]
 81%|████████  | 1024/1261 [04:15<00:58,  4.08it/s]
 81%|████████▏ | 1025/1261 [04:15<00:57,  4.08it/s]
 81%|████████▏ | 1026/1261 [04:16<00:58,  4.02it/s]
 81%|████████▏ | 1027/1261 [04:16<00:57,  4.05it/s]
 82%|████████▏ | 1028/1261 [04:16<00:58,  3.96it/s]
 82%|████████▏ | 1029/1261 [04:16<01:00,  3.81it/s]
 82%|████████▏ | 1030/1261 [04:17<01:00,  3.82it/s]
 82%|████████▏ | 1031/1261 [04:17<01:00,  3.83it/s]
 82%|████████▏ | 1032/1261 [04:17<01:00,  3.81it/s]
 82%|████████▏ | 1033/1261 [04:18<01:01,  3.72it/s]
 82%|████████▏ | 1034/1261 [04:18<01:01,  3.66it/s]
 82%|████████▏ | 1035/1261 [04:18<01:01,  3.66it/s]
 82%|████████▏ | 1036/1261 [04:18<01:00,  3.71it/s]
 82%|████████▏ | 1037/1261 [04:19<00:59,  3.76it/s]
 82%|████████▏ | 1038/1261 [04:19<00:59,  3.76it/s]
 82%|████████▏ | 1039/1261 [04:19<00:59,  3.72it/s]
 82%|████████▏ | 1040/1261 [04:19<00:58,  3.75it/s]
 83%|████████▎ | 1041/1261 [04:20<00:57,  3.80it/s]
 83%|████████▎ | 1042/1261 [04:20<00:59,  3.71it/s]
 83%|████████▎ | 1043/1261 [04:20<00:59,  3.67it/s]
 83%|████████▎ | 1044/1261 [04:21<00:59,  3.66it/s]
 83%|████████▎ | 1045/1261 [04:21<00:58,  3.71it/s]
 83%|████████▎ | 1046/1261 [04:21<00:57,  3.74it/s]
 83%|████████▎ | 1047/1261 [04:21<00:56,  3.76it/s]
 83%|████████▎ | 1048/1261 [04:22<00:56,  3.79it/s]
 83%|████████▎ | 1049/1261 [04:22<00:56,  3.77it/s]
 83%|████████▎ | 1050/1261 [04:22<00:55,  3.79it/s]
 83%|████████▎ | 1051/1261 [04:22<00:54,  3.86it/s]
 83%|████████▎ | 1052/1261 [04:23<00:54,  3.86it/s]
 84%|████████▎ | 1053/1261 [04:23<00:54,  3.80it/s]
 84%|████████▎ | 1054/1261 [04:23<00:55,  3.76it/s]
 84%|████████▎ | 1055/1261 [04:23<00:54,  3.78it/s]
 84%|████████▎ | 1056/1261 [04:24<00:54,  3.77it/s]
 84%|████████▍ | 1057/1261 [04:24<00:54,  3.72it/s]
 84%|████████▍ | 1058/1261 [04:24<00:54,  3.74it/s]
 84%|████████▍ | 1059/1261 [04:24<00:53,  3.78it/s]
 84%|████████▍ | 1060/1261 [04:25<00:53,  3.75it/s]
 84%|████████▍ | 1061/1261 [04:25<00:53,  3.76it/s]
 84%|████████▍ | 1062/1261 [04:25<00:52,  3.76it/s]
 84%|████████▍ | 1063/1261 [04:26<00:51,  3.81it/s]
 84%|████████▍ | 1064/1261 [04:26<00:51,  3.82it/s]
 84%|████████▍ | 1065/1261 [04:26<00:50,  3.85it/s]
 85%|████████▍ | 1066/1261 [04:26<00:50,  3.85it/s]
 85%|████████▍ | 1067/1261 [04:27<00:50,  3.87it/s]
 85%|████████▍ | 1068/1261 [04:27<00:49,  3.88it/s]
 85%|████████▍ | 1069/1261 [04:27<00:49,  3.90it/s]
 85%|████████▍ | 1070/1261 [04:27<00:49,  3.85it/s]
 85%|████████▍ | 1071/1261 [04:28<00:49,  3.85it/s]
 85%|████████▌ | 1072/1261 [04:28<00:48,  3.86it/s]
 85%|████████▌ | 1073/1261 [04:28<00:48,  3.85it/s]
 85%|████████▌ | 1074/1261 [04:28<00:48,  3.82it/s]
 85%|████████▌ | 1075/1261 [04:29<00:48,  3.86it/s]
 85%|████████▌ | 1076/1261 [04:29<00:47,  3.86it/s]
 85%|████████▌ | 1077/1261 [04:29<00:47,  3.88it/s]
 85%|████████▌ | 1078/1261 [04:29<00:47,  3.87it/s]
 86%|████████▌ | 1079/1261 [04:30<00:46,  3.89it/s]
 86%|████████▌ | 1080/1261 [04:30<00:46,  3.89it/s]
 86%|████████▌ | 1081/1261 [04:30<00:45,  3.97it/s]
 86%|████████▌ | 1082/1261 [04:30<00:44,  3.98it/s]
 86%|████████▌ | 1083/1261 [04:31<00:45,  3.92it/s]
 86%|████████▌ | 1084/1261 [04:31<00:45,  3.90it/s]
 86%|████████▌ | 1085/1261 [04:31<00:44,  3.93it/s]
 86%|████████▌ | 1086/1261 [04:31<00:44,  3.96it/s]
 86%|████████▌ | 1087/1261 [04:32<00:43,  3.96it/s]
 86%|████████▋ | 1088/1261 [04:32<00:44,  3.92it/s]
 86%|████████▋ | 1089/1261 [04:32<00:44,  3.89it/s]
 86%|████████▋ | 1090/1261 [04:32<00:43,  3.91it/s]
 87%|████████▋ | 1091/1261 [04:33<00:43,  3.91it/s]
 87%|████████▋ | 1092/1261 [04:33<00:43,  3.91it/s]
 87%|████████▋ | 1093/1261 [04:33<00:42,  3.95it/s]
 87%|████████▋ | 1094/1261 [04:33<00:42,  3.97it/s]
 87%|████████▋ | 1095/1261 [04:34<00:41,  3.97it/s]
 87%|████████▋ | 1096/1261 [04:34<00:41,  3.96it/s]
 87%|████████▋ | 1097/1261 [04:34<00:41,  3.94it/s]
 87%|████████▋ | 1098/1261 [04:35<00:41,  3.88it/s]
 87%|████████▋ | 1099/1261 [04:35<00:42,  3.85it/s]
 87%|████████▋ | 1100/1261 [04:35<00:41,  3.89it/s]
 87%|████████▋ | 1101/1261 [04:35<00:40,  3.91it/s]
 87%|████████▋ | 1102/1261 [04:36<00:40,  3.91it/s]
 87%|████████▋ | 1103/1261 [04:36<00:40,  3.93it/s]
 88%|████████▊ | 1104/1261 [04:36<00:39,  3.94it/s]
 88%|████████▊ | 1105/1261 [04:36<00:39,  3.93it/s]
 88%|████████▊ | 1106/1261 [04:37<00:39,  3.94it/s]
 88%|████████▊ | 1107/1261 [04:37<00:38,  3.95it/s]
 88%|████████▊ | 1108/1261 [04:37<00:38,  3.94it/s]
 88%|████████▊ | 1109/1261 [04:37<00:38,  3.93it/s]
 88%|████████▊ | 1110/1261 [04:38<00:38,  3.92it/s]
 88%|████████▊ | 1111/1261 [04:38<00:37,  3.98it/s]
 88%|████████▊ | 1112/1261 [04:38<00:37,  3.99it/s]
 88%|████████▊ | 1113/1261 [04:38<00:36,  4.02it/s]
 88%|████████▊ | 1114/1261 [04:39<00:36,  4.04it/s]
 88%|████████▊ | 1115/1261 [04:39<00:36,  4.02it/s]
 89%|████████▊ | 1116/1261 [04:39<00:36,  3.99it/s]
 89%|████████▊ | 1117/1261 [04:39<00:36,  3.95it/s]
 89%|████████▊ | 1118/1261 [04:40<00:36,  3.97it/s]
 89%|████████▊ | 1119/1261 [04:40<00:35,  3.98it/s]
 89%|████████▉ | 1120/1261 [04:40<00:35,  3.96it/s]
 89%|████████▉ | 1121/1261 [04:40<00:35,  3.90it/s]
 89%|████████▉ | 1122/1261 [04:41<00:36,  3.86it/s]
 89%|████████▉ | 1123/1261 [04:41<00:35,  3.87it/s]
 89%|████████▉ | 1124/1261 [04:41<00:35,  3.84it/s]
 89%|████████▉ | 1125/1261 [04:41<00:35,  3.87it/s]
 89%|████████▉ | 1126/1261 [04:42<00:34,  3.91it/s]
 89%|████████▉ | 1127/1261 [04:42<00:33,  3.95it/s]
 89%|████████▉ | 1128/1261 [04:42<00:33,  3.96it/s]
 90%|████████▉ | 1129/1261 [04:42<00:33,  3.90it/s]
 90%|████████▉ | 1130/1261 [04:43<00:33,  3.93it/s]
 90%|████████▉ | 1131/1261 [04:43<00:33,  3.91it/s]
 90%|████████▉ | 1132/1261 [04:43<00:32,  3.93it/s]
 90%|████████▉ | 1133/1261 [04:43<00:32,  3.88it/s]
 90%|████████▉ | 1134/1261 [04:44<00:32,  3.91it/s]
 90%|█████████ | 1135/1261 [04:44<00:32,  3.92it/s]
 90%|█████████ | 1136/1261 [04:44<00:31,  3.92it/s]
 90%|█████████ | 1137/1261 [04:44<00:31,  3.93it/s]
 90%|█████████ | 1138/1261 [04:45<00:31,  3.90it/s]
 90%|█████████ | 1139/1261 [04:45<00:31,  3.88it/s]
 90%|█████████ | 1140/1261 [04:45<00:31,  3.88it/s]
 90%|█████████ | 1141/1261 [04:45<00:30,  3.93it/s]
 91%|█████████ | 1142/1261 [04:46<00:30,  3.94it/s]
 91%|█████████ | 1143/1261 [04:46<00:29,  3.95it/s]
 91%|█████████ | 1144/1261 [04:46<00:29,  3.95it/s]
 91%|█████████ | 1145/1261 [04:46<00:29,  3.95it/s]
 91%|█████████ | 1146/1261 [04:47<00:29,  3.96it/s]
 91%|█████████ | 1147/1261 [04:47<00:28,  3.97it/s]
 91%|█████████ | 1148/1261 [04:47<00:28,  3.95it/s]
 91%|█████████ | 1149/1261 [04:47<00:28,  3.97it/s]
 91%|█████████ | 1150/1261 [04:48<00:27,  3.97it/s]
 91%|█████████▏| 1151/1261 [04:48<00:27,  3.96it/s]
 91%|█████████▏| 1152/1261 [04:48<00:27,  3.97it/s]
 91%|█████████▏| 1153/1261 [04:48<00:27,  3.94it/s]
 92%|█████████▏| 1154/1261 [04:49<00:27,  3.93it/s]
 92%|█████████▏| 1155/1261 [04:49<00:26,  3.94it/s]
 92%|█████████▏| 1156/1261 [04:49<00:26,  3.94it/s]
 92%|█████████▏| 1157/1261 [04:49<00:26,  3.97it/s]
 92%|█████████▏| 1158/1261 [04:50<00:25,  3.97it/s]
 92%|█████████▏| 1159/1261 [04:50<00:25,  3.97it/s]
 92%|█████████▏| 1160/1261 [04:50<00:25,  3.97it/s]
 92%|█████████▏| 1161/1261 [04:50<00:24,  4.00it/s]
 92%|█████████▏| 1162/1261 [04:51<00:24,  4.00it/s]
 92%|█████████▏| 1163/1261 [04:51<00:24,  4.00it/s]
 92%|█████████▏| 1164/1261 [04:51<00:24,  4.00it/s]
 92%|█████████▏| 1165/1261 [04:52<00:24,  3.98it/s]
 92%|█████████▏| 1166/1261 [04:52<00:23,  3.99it/s]
 93%|█████████▎| 1167/1261 [04:52<00:23,  4.00it/s]
 93%|█████████▎| 1168/1261 [04:52<00:23,  3.98it/s]
 93%|█████████▎| 1169/1261 [04:53<00:23,  3.98it/s]
 93%|█████████▎| 1170/1261 [04:53<00:22,  4.01it/s]
 93%|█████████▎| 1171/1261 [04:53<00:22,  4.03it/s]
 93%|█████████▎| 1172/1261 [04:53<00:21,  4.05it/s]
 93%|█████████▎| 1173/1261 [04:53<00:22,  3.99it/s]
 93%|█████████▎| 1174/1261 [04:54<00:22,  3.93it/s]
 93%|█████████▎| 1175/1261 [04:54<00:22,  3.90it/s]
 93%|█████████▎| 1176/1261 [04:54<00:21,  3.90it/s]
 93%|█████████▎| 1177/1261 [04:55<00:21,  3.92it/s]
 93%|█████████▎| 1178/1261 [04:55<00:20,  3.98it/s]
 93%|█████████▎| 1179/1261 [04:55<00:20,  4.00it/s]
 94%|█████████▎| 1180/1261 [04:55<00:20,  3.97it/s]
 94%|█████████▎| 1181/1261 [04:56<00:20,  3.94it/s]
 94%|█████████▎| 1182/1261 [04:56<00:20,  3.92it/s]
 94%|█████████▍| 1183/1261 [04:56<00:19,  3.93it/s]
 94%|█████████▍| 1184/1261 [04:56<00:19,  3.94it/s]
 94%|█████████▍| 1185/1261 [04:57<00:19,  3.97it/s]
 94%|█████████▍| 1186/1261 [04:57<00:19,  3.94it/s]
 94%|█████████▍| 1187/1261 [04:57<00:18,  3.97it/s]
 94%|█████████▍| 1188/1261 [04:57<00:18,  3.97it/s]
 94%|█████████▍| 1189/1261 [04:58<00:18,  3.98it/s]
 94%|█████████▍| 1190/1261 [04:58<00:17,  4.00it/s]
 94%|█████████▍| 1191/1261 [04:58<00:17,  3.97it/s]
 95%|█████████▍| 1192/1261 [04:58<00:17,  3.89it/s]
 95%|█████████▍| 1193/1261 [04:59<00:17,  3.88it/s]
 95%|█████████▍| 1194/1261 [04:59<00:17,  3.88it/s]
 95%|█████████▍| 1195/1261 [04:59<00:16,  3.89it/s]
 95%|█████████▍| 1196/1261 [04:59<00:16,  3.91it/s]
 95%|█████████▍| 1197/1261 [05:00<00:16,  3.94it/s]
 95%|█████████▌| 1198/1261 [05:00<00:16,  3.93it/s]
 95%|█████████▌| 1199/1261 [05:00<00:15,  3.91it/s]
 95%|█████████▌| 1200/1261 [05:00<00:15,  3.94it/s]
 95%|█████████▌| 1201/1261 [05:01<00:14,  4.01it/s]
 95%|█████████▌| 1202/1261 [05:01<00:14,  4.05it/s]
 95%|█████████▌| 1203/1261 [05:01<00:14,  4.06it/s]
 95%|█████████▌| 1204/1261 [05:01<00:14,  4.05it/s]
 96%|█████████▌| 1205/1261 [05:02<00:13,  4.06it/s]
 96%|█████████▌| 1206/1261 [05:02<00:13,  4.03it/s]
 96%|█████████▌| 1207/1261 [05:02<00:13,  4.03it/s]
 96%|█████████▌| 1208/1261 [05:02<00:13,  4.00it/s]
 96%|█████████▌| 1209/1261 [05:03<00:13,  4.00it/s]
 96%|█████████▌| 1210/1261 [05:03<00:12,  4.01it/s]
 96%|█████████▌| 1211/1261 [05:03<00:12,  4.02it/s]
 96%|█████████▌| 1212/1261 [05:03<00:12,  3.96it/s]
 96%|█████████▌| 1213/1261 [05:04<00:12,  3.96it/s]
 96%|█████████▋| 1214/1261 [05:04<00:11,  3.99it/s]
 96%|█████████▋| 1215/1261 [05:04<00:11,  3.97it/s]
 96%|█████████▋| 1216/1261 [05:04<00:11,  3.91it/s]
 97%|█████████▋| 1217/1261 [05:05<00:11,  3.91it/s]
 97%|█████████▋| 1218/1261 [05:05<00:10,  3.93it/s]
 97%|█████████▋| 1219/1261 [05:05<00:10,  3.91it/s]
 97%|█████████▋| 1220/1261 [05:05<00:10,  3.94it/s]
 97%|█████████▋| 1221/1261 [05:06<00:10,  3.97it/s]
 97%|█████████▋| 1222/1261 [05:06<00:09,  3.98it/s]
 97%|█████████▋| 1223/1261 [05:06<00:09,  3.99it/s]
 97%|█████████▋| 1224/1261 [05:06<00:09,  3.98it/s]
 97%|█████████▋| 1225/1261 [05:07<00:09,  3.99it/s]
 97%|█████████▋| 1226/1261 [05:07<00:08,  3.99it/s]
 97%|█████████▋| 1227/1261 [05:07<00:08,  4.01it/s]
 97%|█████████▋| 1228/1261 [05:07<00:08,  3.99it/s]
 97%|█████████▋| 1229/1261 [05:08<00:07,  4.03it/s]
 98%|█████████▊| 1230/1261 [05:08<00:07,  4.02it/s]
 98%|█████████▊| 1231/1261 [05:08<00:07,  4.02it/s]
 98%|█████████▊| 1232/1261 [05:08<00:07,  4.06it/s]
 98%|█████████▊| 1233/1261 [05:09<00:06,  4.03it/s]
 98%|█████████▊| 1234/1261 [05:09<00:06,  3.97it/s]
 98%|█████████▊| 1235/1261 [05:09<00:06,  3.97it/s]
 98%|█████████▊| 1236/1261 [05:09<00:06,  3.91it/s]
 98%|█████████▊| 1237/1261 [05:10<00:06,  3.89it/s]
 98%|█████████▊| 1238/1261 [05:10<00:05,  3.94it/s]
 98%|█████████▊| 1239/1261 [05:10<00:05,  3.96it/s]
 98%|█████████▊| 1240/1261 [05:10<00:05,  3.97it/s]
 98%|█████████▊| 1241/1261 [05:11<00:05,  4.00it/s]
 98%|█████████▊| 1242/1261 [05:11<00:04,  3.96it/s]
 99%|█████████▊| 1243/1261 [05:11<00:04,  3.96it/s]
 99%|█████████▊| 1244/1261 [05:11<00:04,  3.98it/s]
 99%|█████████▊| 1245/1261 [05:12<00:04,  3.99it/s]
 99%|█████████▉| 1246/1261 [05:12<00:03,  3.99it/s]
 99%|█████████▉| 1247/1261 [05:12<00:03,  3.98it/s]
 99%|█████████▉| 1248/1261 [05:12<00:03,  3.94it/s]
 99%|█████████▉| 1249/1261 [05:13<00:03,  3.97it/s]
 99%|█████████▉| 1250/1261 [05:13<00:02,  3.94it/s]
 99%|█████████▉| 1251/1261 [05:13<00:02,  3.96it/s]
 99%|█████████▉| 1252/1261 [05:13<00:02,  3.90it/s]
 99%|█████████▉| 1253/1261 [05:14<00:02,  3.91it/s]
 99%|█████████▉| 1254/1261 [05:14<00:01,  3.89it/s]
100%|█████████▉| 1255/1261 [05:14<00:01,  3.89it/s]
100%|█████████▉| 1256/1261 [05:14<00:01,  3.90it/s]
100%|█████████▉| 1257/1261 [05:15<00:01,  3.92it/s]
100%|█████████▉| 1258/1261 [05:15<00:00,  3.91it/s]
100%|█████████▉| 1259/1261 [05:15<00:00,  3.88it/s]
100%|█████████▉| 1260/1261 [05:15<00:00,  3.87it/s]
[MoviePy] Done.
[MoviePy] >>>> Video ready: project_video_out_without_detection1.mp4 

CPU times: user 4min 46s, sys: 45.7 s, total: 5min 32s
Wall time: 5min 16s

Estimate a bounding box for vehicles detected.

In [163]:
# Define a class to store data from video
class Vehicle_Detect():
    
    def __init__(self):
        # history of rectangles previous n frames
        self.boundingbox = 15
        self.prev_rects = [] 
        
    def add_rects(self, rects):
        self.prev_rects.append(rects)
        if len(self.prev_rects) > self.boundingbox:
            # throw out oldest rectangle set(s)
            self.prev_rects = self.prev_rects[len(self.prev_rects)-self.boundingbox:]
In [164]:
def pipeline_process_update(img):
    svc = clf # a trained classifier of SVM
    #svc = clf_dt # a trained classifier of decision tree
    X_scaler = None
    cspace = 'YUV' # RGB, HSV, HLS, LUV, YUV, YCrCb
    orient = 11
    pix_per_cell = 16
    cell_per_block = 2
    hog_channel = 'ALL' # 0, 1, 2, ALL
    spatial_size= None
    hist_bins = None

    all_rectangles = False

    rectangles = []

    # configure different sliding window searches.
    # scale <1.0 introduces more falsely positives. I have tested to [400,464,0.5], it introduced 18 rectangles.
    configs = [[400,464,1.0], [416,480,1.0], [400,496,1.5], [432,528,1.5], [400,528,2.0], [432,560,2.0], [400,596,3.5], [464,660,3.5]]

    for (ystart, ystop, scale) in configs:
        out_rectangles = find_cars(img, ystart, ystop, scale, cspace, hog_channel, svc, X_scaler, orient, pix_per_cell, cell_per_block, spatial_size, hist_bins, all_rectangles)
        rectangles.append(out_rectangles)
    
    rectangles = [x for sublist in rectangles for x in sublist] 
    
    # add detected rectangles to the history list
    if len(rectangles) > 0:
        detected.add_rects(rectangles)
    
    # add heatmap
    out_heatmap = np.zeros_like(img[:,:,0])
    for rectset in detected.prev_rects:
        out_heatmap = add_heat(out_heatmap, rectset)
        
    # add threshold
    out_heatmap = apply_threshold(out_heatmap, 1+ len(detected.prev_rects)//2)
    labels = label(out_heatmap)
    # draw boxes
#     draw_image, rects = draw_labeled_bboxes(np.copy(img), labels, color='random', thick=6)
    draw_image, rects = draw_labeled_bboxes(np.copy(img), labels)
    
    return draw_image
In [165]:
detected = Vehicle_Detect()
detected.boundingbox = 22

test_out_file2 = 'test_video_out_with_detection_bluecolor_22.mp4'
clip_test2 = VideoFileClip('test_video.mp4')
clip_test_out2 = clip_test2.fl_image(pipeline_process_update)
%time clip_test_out2.write_videofile(test_out_file2, audio=False)
[MoviePy] >>>> Building video test_video_out_with_detection_bluecolor_22.mp4
[MoviePy] Writing video test_video_out_with_detection_bluecolor_22.mp4
  0%|          | 0/39 [00:00<?, ?it/s]
  3%|▎         | 1/39 [00:00<00:09,  3.83it/s]
  5%|▌         | 2/39 [00:00<00:09,  3.84it/s]
  8%|▊         | 3/39 [00:00<00:09,  3.81it/s]
 10%|█         | 4/39 [00:01<00:09,  3.82it/s]
 13%|█▎        | 5/39 [00:01<00:08,  3.84it/s]
 15%|█▌        | 6/39 [00:01<00:08,  3.75it/s]
 18%|█▊        | 7/39 [00:01<00:08,  3.78it/s]
 21%|██        | 8/39 [00:02<00:08,  3.80it/s]
 23%|██▎       | 9/39 [00:02<00:07,  3.85it/s]
 26%|██▌       | 10/39 [00:02<00:07,  3.83it/s]
 28%|██▊       | 11/39 [00:02<00:07,  3.86it/s]
 31%|███       | 12/39 [00:03<00:07,  3.86it/s]
 33%|███▎      | 13/39 [00:03<00:06,  3.86it/s]
 36%|███▌      | 14/39 [00:03<00:06,  3.84it/s]
 38%|███▊      | 15/39 [00:03<00:06,  3.84it/s]
 41%|████      | 16/39 [00:04<00:05,  3.84it/s]
 44%|████▎     | 17/39 [00:04<00:05,  3.86it/s]
 46%|████▌     | 18/39 [00:04<00:05,  3.86it/s]
 49%|████▊     | 19/39 [00:04<00:05,  3.89it/s]
 51%|█████▏    | 20/39 [00:05<00:04,  3.87it/s]
 54%|█████▍    | 21/39 [00:05<00:04,  3.85it/s]
 56%|█████▋    | 22/39 [00:05<00:04,  3.88it/s]
 59%|█████▉    | 23/39 [00:05<00:04,  3.86it/s]
 62%|██████▏   | 24/39 [00:06<00:03,  3.86it/s]
 64%|██████▍   | 25/39 [00:06<00:03,  3.88it/s]
 67%|██████▋   | 26/39 [00:06<00:03,  3.84it/s]
 69%|██████▉   | 27/39 [00:07<00:03,  3.80it/s]
 72%|███████▏  | 28/39 [00:07<00:02,  3.82it/s]
 74%|███████▍  | 29/39 [00:07<00:02,  3.84it/s]
 77%|███████▋  | 30/39 [00:07<00:02,  3.82it/s]
 79%|███████▉  | 31/39 [00:08<00:02,  3.86it/s]
 82%|████████▏ | 32/39 [00:08<00:01,  3.86it/s]
 85%|████████▍ | 33/39 [00:08<00:01,  3.87it/s]
 87%|████████▋ | 34/39 [00:08<00:01,  3.88it/s]
 90%|████████▉ | 35/39 [00:09<00:01,  3.83it/s]
 92%|█████████▏| 36/39 [00:09<00:00,  3.82it/s]
 95%|█████████▍| 37/39 [00:09<00:00,  3.83it/s]
 97%|█████████▋| 38/39 [00:09<00:00,  3.84it/s]
[MoviePy] Done.
[MoviePy] >>>> Video ready: test_video_out_with_detection_bluecolor_22.mp4 

CPU times: user 9.02 s, sys: 1.49 s, total: 10.5 s
Wall time: 10.8 s
In [166]:
detected = Vehicle_Detect()
detected.boundingbox = 22

test_out_file = 'project_video_out_with_detection_bluecolor_22.mp4'
clip_test = VideoFileClip('project_video.mp4')
clip_test_out = clip_test.fl_image(pipeline_process_update)
%time clip_test_out.write_videofile(test_out_file, audio=False)
[MoviePy] >>>> Building video project_video_out_with_detection_bluecolor_22.mp4
[MoviePy] Writing video project_video_out_with_detection_bluecolor_22.mp4
  0%|          | 0/1261 [00:00<?, ?it/s]
  0%|          | 1/1261 [00:00<05:13,  4.01it/s]
  0%|          | 2/1261 [00:00<05:16,  3.97it/s]
  0%|          | 3/1261 [00:00<05:15,  3.99it/s]
  0%|          | 4/1261 [00:01<05:18,  3.95it/s]
  0%|          | 5/1261 [00:01<05:13,  4.00it/s]
  0%|          | 6/1261 [00:01<05:16,  3.96it/s]
  1%|          | 7/1261 [00:01<05:12,  4.02it/s]
  1%|          | 8/1261 [00:02<05:13,  3.99it/s]
  1%|          | 9/1261 [00:02<05:14,  3.98it/s]
  1%|          | 10/1261 [00:02<05:09,  4.04it/s]
  1%|          | 11/1261 [00:02<05:02,  4.13it/s]
  1%|          | 12/1261 [00:02<05:02,  4.12it/s]
  1%|          | 13/1261 [00:03<05:07,  4.06it/s]
  1%|          | 14/1261 [00:03<05:08,  4.05it/s]
  1%|          | 15/1261 [00:03<05:06,  4.06it/s]
  1%|▏         | 16/1261 [00:03<05:06,  4.07it/s]
  1%|▏         | 17/1261 [00:04<05:05,  4.07it/s]
  1%|▏         | 18/1261 [00:04<05:03,  4.10it/s]
  2%|▏         | 19/1261 [00:04<05:04,  4.07it/s]
  2%|▏         | 20/1261 [00:04<05:06,  4.05it/s]
  2%|▏         | 21/1261 [00:05<05:03,  4.09it/s]
  2%|▏         | 22/1261 [00:05<05:04,  4.07it/s]
  2%|▏         | 23/1261 [00:05<05:06,  4.04it/s]
  2%|▏         | 24/1261 [00:05<05:09,  4.00it/s]
  2%|▏         | 25/1261 [00:06<05:15,  3.92it/s]
  2%|▏         | 26/1261 [00:06<05:12,  3.96it/s]
  2%|▏         | 27/1261 [00:06<05:07,  4.02it/s]
  2%|▏         | 28/1261 [00:06<05:09,  3.98it/s]
  2%|▏         | 29/1261 [00:07<05:12,  3.94it/s]
  2%|▏         | 30/1261 [00:07<05:11,  3.95it/s]
  2%|▏         | 31/1261 [00:07<05:10,  3.96it/s]
  3%|▎         | 32/1261 [00:07<05:09,  3.97it/s]
  3%|▎         | 33/1261 [00:08<05:07,  3.99it/s]
  3%|▎         | 34/1261 [00:08<05:05,  4.01it/s]
  3%|▎         | 35/1261 [00:08<05:01,  4.06it/s]
  3%|▎         | 36/1261 [00:08<05:07,  3.99it/s]
  3%|▎         | 37/1261 [00:09<05:09,  3.95it/s]
  3%|▎         | 38/1261 [00:09<05:06,  3.99it/s]
  3%|▎         | 39/1261 [00:09<05:03,  4.02it/s]
  3%|▎         | 40/1261 [00:09<05:02,  4.03it/s]
  3%|▎         | 41/1261 [00:10<05:01,  4.05it/s]
  3%|▎         | 42/1261 [00:10<05:00,  4.05it/s]
  3%|▎         | 43/1261 [00:10<05:01,  4.04it/s]
  3%|▎         | 44/1261 [00:10<05:02,  4.03it/s]
  4%|▎         | 45/1261 [00:11<05:03,  4.00it/s]
  4%|▎         | 46/1261 [00:11<05:01,  4.03it/s]
  4%|▎         | 47/1261 [00:11<05:01,  4.02it/s]
  4%|▍         | 48/1261 [00:11<05:04,  3.98it/s]
  4%|▍         | 49/1261 [00:12<05:02,  4.00it/s]
  4%|▍         | 50/1261 [00:12<05:02,  4.00it/s]
  4%|▍         | 51/1261 [00:12<05:01,  4.01it/s]
  4%|▍         | 52/1261 [00:12<05:01,  4.00it/s]
  4%|▍         | 53/1261 [00:13<05:00,  4.02it/s]
  4%|▍         | 54/1261 [00:13<04:59,  4.03it/s]
  4%|▍         | 55/1261 [00:13<05:00,  4.02it/s]
  4%|▍         | 56/1261 [00:13<04:59,  4.03it/s]
  5%|▍         | 57/1261 [00:14<04:57,  4.05it/s]
  5%|▍         | 58/1261 [00:14<04:56,  4.06it/s]
  5%|▍         | 59/1261 [00:14<04:56,  4.05it/s]
  5%|▍         | 60/1261 [00:14<04:56,  4.06it/s]
  5%|▍         | 61/1261 [00:15<04:55,  4.07it/s]
  5%|▍         | 62/1261 [00:15<04:56,  4.05it/s]
  5%|▍         | 63/1261 [00:15<04:53,  4.08it/s]
  5%|▌         | 64/1261 [00:15<04:50,  4.12it/s]
  5%|▌         | 65/1261 [00:16<04:50,  4.11it/s]
  5%|▌         | 66/1261 [00:16<04:47,  4.16it/s]
  5%|▌         | 67/1261 [00:16<04:49,  4.13it/s]
  5%|▌         | 68/1261 [00:16<04:46,  4.16it/s]
  5%|▌         | 69/1261 [00:17<04:45,  4.17it/s]
  6%|▌         | 70/1261 [00:17<04:48,  4.13it/s]
  6%|▌         | 71/1261 [00:17<04:51,  4.08it/s]
  6%|▌         | 72/1261 [00:17<04:50,  4.09it/s]
  6%|▌         | 73/1261 [00:18<04:54,  4.03it/s]
  6%|▌         | 74/1261 [00:18<04:56,  4.00it/s]
  6%|▌         | 75/1261 [00:18<04:59,  3.96it/s]
  6%|▌         | 76/1261 [00:18<04:56,  4.00it/s]
  6%|▌         | 77/1261 [00:19<04:51,  4.06it/s]
  6%|▌         | 78/1261 [00:19<04:50,  4.07it/s]
  6%|▋         | 79/1261 [00:19<04:53,  4.03it/s]
  6%|▋         | 80/1261 [00:19<04:50,  4.06it/s]
  6%|▋         | 81/1261 [00:20<04:54,  4.01it/s]
  7%|▋         | 82/1261 [00:20<04:53,  4.02it/s]
  7%|▋         | 83/1261 [00:20<04:54,  4.00it/s]
  7%|▋         | 84/1261 [00:20<04:54,  3.99it/s]
  7%|▋         | 85/1261 [00:21<04:54,  3.99it/s]
  7%|▋         | 86/1261 [00:21<04:55,  3.98it/s]
  7%|▋         | 87/1261 [00:21<04:59,  3.93it/s]
  7%|▋         | 88/1261 [00:21<04:55,  3.97it/s]
  7%|▋         | 89/1261 [00:22<04:53,  3.99it/s]
  7%|▋         | 90/1261 [00:22<04:51,  4.01it/s]
  7%|▋         | 91/1261 [00:22<04:50,  4.02it/s]
  7%|▋         | 92/1261 [00:22<04:49,  4.04it/s]
  7%|▋         | 93/1261 [00:23<04:48,  4.05it/s]
  7%|▋         | 94/1261 [00:23<04:46,  4.07it/s]
  8%|▊         | 95/1261 [00:23<04:46,  4.06it/s]
  8%|▊         | 96/1261 [00:23<04:47,  4.05it/s]
  8%|▊         | 97/1261 [00:24<04:47,  4.05it/s]
  8%|▊         | 98/1261 [00:24<04:49,  4.01it/s]
  8%|▊         | 99/1261 [00:24<04:48,  4.03it/s]
  8%|▊         | 100/1261 [00:24<04:50,  4.00it/s]
  8%|▊         | 101/1261 [00:25<04:50,  3.99it/s]
  8%|▊         | 102/1261 [00:25<04:50,  3.98it/s]
  8%|▊         | 103/1261 [00:25<04:49,  4.00it/s]
  8%|▊         | 104/1261 [00:25<04:47,  4.02it/s]
  8%|▊         | 105/1261 [00:26<04:48,  4.01it/s]
  8%|▊         | 106/1261 [00:26<04:49,  3.99it/s]
  8%|▊         | 107/1261 [00:26<04:49,  3.98it/s]
  9%|▊         | 108/1261 [00:26<04:52,  3.95it/s]
  9%|▊         | 109/1261 [00:27<04:53,  3.93it/s]
  9%|▊         | 110/1261 [00:27<04:52,  3.94it/s]
  9%|▉         | 111/1261 [00:27<04:49,  3.97it/s]
  9%|▉         | 112/1261 [00:27<04:50,  3.96it/s]
  9%|▉         | 113/1261 [00:28<04:47,  4.00it/s]
  9%|▉         | 114/1261 [00:28<04:49,  3.97it/s]
  9%|▉         | 115/1261 [00:28<04:52,  3.92it/s]
  9%|▉         | 116/1261 [00:28<04:57,  3.85it/s]
  9%|▉         | 117/1261 [00:29<04:59,  3.82it/s]
  9%|▉         | 118/1261 [00:29<05:05,  3.75it/s]
  9%|▉         | 119/1261 [00:29<05:05,  3.73it/s]
 10%|▉         | 120/1261 [00:29<05:02,  3.77it/s]
 10%|▉         | 121/1261 [00:30<05:02,  3.77it/s]
 10%|▉         | 122/1261 [00:30<04:52,  3.90it/s]
 10%|▉         | 123/1261 [00:30<04:45,  3.99it/s]
 10%|▉         | 124/1261 [00:30<04:43,  4.02it/s]
 10%|▉         | 125/1261 [00:31<04:40,  4.05it/s]
 10%|▉         | 126/1261 [00:31<04:40,  4.05it/s]
 10%|█         | 127/1261 [00:31<04:44,  3.99it/s]
 10%|█         | 128/1261 [00:31<04:51,  3.89it/s]
 10%|█         | 129/1261 [00:32<04:49,  3.90it/s]
 10%|█         | 130/1261 [00:32<04:47,  3.93it/s]
 10%|█         | 131/1261 [00:32<04:44,  3.98it/s]
 10%|█         | 132/1261 [00:32<04:44,  3.97it/s]
 11%|█         | 133/1261 [00:33<04:41,  4.01it/s]
 11%|█         | 134/1261 [00:33<04:39,  4.03it/s]
 11%|█         | 135/1261 [00:33<04:45,  3.95it/s]
 11%|█         | 136/1261 [00:33<04:48,  3.90it/s]
 11%|█         | 137/1261 [00:34<04:54,  3.82it/s]
 11%|█         | 138/1261 [00:34<04:57,  3.77it/s]
 11%|█         | 139/1261 [00:34<04:55,  3.80it/s]
 11%|█         | 140/1261 [00:35<04:54,  3.80it/s]
 11%|█         | 141/1261 [00:35<04:53,  3.82it/s]
 11%|█▏        | 142/1261 [00:35<04:55,  3.78it/s]
 11%|█▏        | 143/1261 [00:35<04:54,  3.80it/s]
 11%|█▏        | 144/1261 [00:36<04:50,  3.84it/s]
 11%|█▏        | 145/1261 [00:36<04:43,  3.94it/s]
 12%|█▏        | 146/1261 [00:36<04:41,  3.96it/s]
 12%|█▏        | 147/1261 [00:36<04:42,  3.94it/s]
 12%|█▏        | 148/1261 [00:37<04:43,  3.93it/s]
 12%|█▏        | 149/1261 [00:37<04:44,  3.91it/s]
 12%|█▏        | 150/1261 [00:37<04:43,  3.92it/s]
 12%|█▏        | 151/1261 [00:37<04:41,  3.94it/s]
 12%|█▏        | 152/1261 [00:38<04:41,  3.94it/s]
 12%|█▏        | 153/1261 [00:38<04:38,  3.98it/s]
 12%|█▏        | 154/1261 [00:38<04:35,  4.01it/s]
 12%|█▏        | 155/1261 [00:38<04:39,  3.96it/s]
 12%|█▏        | 156/1261 [00:39<04:38,  3.97it/s]
 12%|█▏        | 157/1261 [00:39<04:36,  3.99it/s]
 13%|█▎        | 158/1261 [00:39<04:36,  3.98it/s]
 13%|█▎        | 159/1261 [00:39<04:37,  3.97it/s]
 13%|█▎        | 160/1261 [00:40<04:35,  3.99it/s]
 13%|█▎        | 161/1261 [00:40<04:33,  4.03it/s]
 13%|█▎        | 162/1261 [00:40<04:35,  3.99it/s]
 13%|█▎        | 163/1261 [00:40<04:34,  4.00it/s]
 13%|█▎        | 164/1261 [00:41<04:35,  3.98it/s]
 13%|█▎        | 165/1261 [00:41<04:35,  3.98it/s]
 13%|█▎        | 166/1261 [00:41<04:35,  3.98it/s]
 13%|█▎        | 167/1261 [00:41<04:37,  3.95it/s]
 13%|█▎        | 168/1261 [00:42<04:39,  3.91it/s]
 13%|█▎        | 169/1261 [00:42<04:36,  3.95it/s]
 13%|█▎        | 170/1261 [00:42<04:34,  3.97it/s]
 14%|█▎        | 171/1261 [00:42<04:38,  3.91it/s]
 14%|█▎        | 172/1261 [00:43<04:41,  3.87it/s]
 14%|█▎        | 173/1261 [00:43<04:39,  3.89it/s]
 14%|█▍        | 174/1261 [00:43<04:39,  3.89it/s]
 14%|█▍        | 175/1261 [00:43<04:40,  3.88it/s]
 14%|█▍        | 176/1261 [00:44<04:38,  3.90it/s]
 14%|█▍        | 177/1261 [00:44<04:33,  3.96it/s]
 14%|█▍        | 178/1261 [00:44<04:34,  3.94it/s]
 14%|█▍        | 179/1261 [00:44<04:36,  3.92it/s]
 14%|█▍        | 180/1261 [00:45<04:33,  3.95it/s]
 14%|█▍        | 181/1261 [00:45<04:28,  4.02it/s]
 14%|█▍        | 182/1261 [00:45<04:30,  3.99it/s]
 15%|█▍        | 183/1261 [00:45<04:31,  3.97it/s]
 15%|█▍        | 184/1261 [00:46<04:32,  3.96it/s]
 15%|█▍        | 185/1261 [00:46<04:29,  4.00it/s]
 15%|█▍        | 186/1261 [00:46<04:31,  3.96it/s]
 15%|█▍        | 187/1261 [00:46<04:32,  3.95it/s]
 15%|█▍        | 188/1261 [00:47<04:32,  3.93it/s]
 15%|█▍        | 189/1261 [00:47<04:32,  3.93it/s]
 15%|█▌        | 190/1261 [00:47<04:34,  3.91it/s]
 15%|█▌        | 191/1261 [00:47<04:34,  3.90it/s]
 15%|█▌        | 192/1261 [00:48<04:34,  3.90it/s]
 15%|█▌        | 193/1261 [00:48<04:34,  3.89it/s]
 15%|█▌        | 194/1261 [00:48<04:41,  3.79it/s]
 15%|█▌        | 195/1261 [00:49<04:42,  3.78it/s]
 16%|█▌        | 196/1261 [00:49<04:44,  3.74it/s]
 16%|█▌        | 197/1261 [00:49<04:43,  3.75it/s]
 16%|█▌        | 198/1261 [00:49<04:38,  3.82it/s]
 16%|█▌        | 199/1261 [00:50<04:39,  3.80it/s]
 16%|█▌        | 200/1261 [00:50<04:38,  3.81it/s]
 16%|█▌        | 201/1261 [00:50<04:35,  3.85it/s]
 16%|█▌        | 202/1261 [00:50<04:32,  3.89it/s]
 16%|█▌        | 203/1261 [00:51<04:31,  3.90it/s]
 16%|█▌        | 204/1261 [00:51<04:27,  3.95it/s]
 16%|█▋        | 205/1261 [00:51<04:25,  3.98it/s]
 16%|█▋        | 206/1261 [00:51<04:27,  3.94it/s]
 16%|█▋        | 207/1261 [00:52<04:29,  3.91it/s]
 16%|█▋        | 208/1261 [00:52<04:29,  3.90it/s]
 17%|█▋        | 209/1261 [00:52<04:30,  3.89it/s]
 17%|█▋        | 210/1261 [00:52<04:32,  3.86it/s]
 17%|█▋        | 211/1261 [00:53<04:30,  3.88it/s]
 17%|█▋        | 212/1261 [00:53<04:28,  3.90it/s]
 17%|█▋        | 213/1261 [00:53<04:25,  3.94it/s]
 17%|█▋        | 214/1261 [00:53<04:28,  3.90it/s]
 17%|█▋        | 215/1261 [00:54<04:25,  3.94it/s]
 17%|█▋        | 216/1261 [00:54<04:22,  3.97it/s]
 17%|█▋        | 217/1261 [00:54<04:25,  3.94it/s]
 17%|█▋        | 218/1261 [00:54<04:22,  3.97it/s]
 17%|█▋        | 219/1261 [00:55<04:23,  3.95it/s]
 17%|█▋        | 220/1261 [00:55<04:24,  3.93it/s]
 18%|█▊        | 221/1261 [00:55<04:27,  3.89it/s]
 18%|█▊        | 222/1261 [00:55<04:25,  3.91it/s]
 18%|█▊        | 223/1261 [00:56<04:27,  3.88it/s]
 18%|█▊        | 224/1261 [00:56<04:26,  3.89it/s]
 18%|█▊        | 225/1261 [00:56<04:25,  3.91it/s]
 18%|█▊        | 226/1261 [00:56<04:23,  3.93it/s]
 18%|█▊        | 227/1261 [00:57<04:22,  3.94it/s]
 18%|█▊        | 228/1261 [00:57<04:22,  3.94it/s]
 18%|█▊        | 229/1261 [00:57<04:23,  3.92it/s]
 18%|█▊        | 230/1261 [00:57<04:22,  3.92it/s]
 18%|█▊        | 231/1261 [00:58<04:22,  3.93it/s]
 18%|█▊        | 232/1261 [00:58<04:21,  3.94it/s]
 18%|█▊        | 233/1261 [00:58<04:20,  3.95it/s]
 19%|█▊        | 234/1261 [00:59<04:20,  3.94it/s]
 19%|█▊        | 235/1261 [00:59<04:19,  3.95it/s]
 19%|█▊        | 236/1261 [00:59<04:18,  3.96it/s]
 19%|█▉        | 237/1261 [00:59<04:20,  3.93it/s]
 19%|█▉        | 238/1261 [01:00<04:19,  3.94it/s]
 19%|█▉        | 239/1261 [01:00<04:19,  3.94it/s]
 19%|█▉        | 240/1261 [01:00<04:18,  3.94it/s]
 19%|█▉        | 241/1261 [01:00<04:19,  3.93it/s]
 19%|█▉        | 242/1261 [01:01<04:18,  3.94it/s]
 19%|█▉        | 243/1261 [01:01<04:19,  3.92it/s]
 19%|█▉        | 244/1261 [01:01<04:20,  3.90it/s]
 19%|█▉        | 245/1261 [01:01<04:18,  3.94it/s]
 20%|█▉        | 246/1261 [01:02<04:16,  3.96it/s]
 20%|█▉        | 247/1261 [01:02<04:19,  3.91it/s]
 20%|█▉        | 248/1261 [01:02<04:16,  3.96it/s]
 20%|█▉        | 249/1261 [01:02<04:17,  3.93it/s]
 20%|█▉        | 250/1261 [01:03<04:14,  3.98it/s]
 20%|█▉        | 251/1261 [01:03<04:16,  3.94it/s]
 20%|█▉        | 252/1261 [01:03<04:16,  3.94it/s]
 20%|██        | 253/1261 [01:03<04:15,  3.94it/s]
 20%|██        | 254/1261 [01:04<04:12,  3.99it/s]
 20%|██        | 255/1261 [01:04<04:14,  3.95it/s]
 20%|██        | 256/1261 [01:04<04:14,  3.94it/s]
 20%|██        | 257/1261 [01:04<04:16,  3.91it/s]
 20%|██        | 258/1261 [01:05<04:15,  3.92it/s]
 21%|██        | 259/1261 [01:05<04:16,  3.90it/s]
 21%|██        | 260/1261 [01:05<04:18,  3.87it/s]
 21%|██        | 261/1261 [01:05<04:24,  3.78it/s]
 21%|██        | 262/1261 [01:06<04:23,  3.79it/s]
 21%|██        | 263/1261 [01:06<04:22,  3.80it/s]
 21%|██        | 264/1261 [01:06<04:17,  3.87it/s]
 21%|██        | 265/1261 [01:06<04:16,  3.88it/s]
 21%|██        | 266/1261 [01:07<04:13,  3.93it/s]
 21%|██        | 267/1261 [01:07<04:16,  3.87it/s]
 21%|██▏       | 268/1261 [01:07<04:18,  3.84it/s]
 21%|██▏       | 269/1261 [01:07<04:18,  3.83it/s]
 21%|██▏       | 270/1261 [01:08<04:14,  3.89it/s]
 21%|██▏       | 271/1261 [01:08<04:15,  3.88it/s]
 22%|██▏       | 272/1261 [01:08<04:13,  3.90it/s]
 22%|██▏       | 273/1261 [01:08<04:14,  3.89it/s]
 22%|██▏       | 274/1261 [01:09<04:12,  3.92it/s]
 22%|██▏       | 275/1261 [01:09<04:11,  3.92it/s]
 22%|██▏       | 276/1261 [01:09<04:14,  3.87it/s]
 22%|██▏       | 277/1261 [01:10<04:12,  3.89it/s]
 22%|██▏       | 278/1261 [01:10<04:14,  3.87it/s]
 22%|██▏       | 279/1261 [01:10<04:17,  3.82it/s]
 22%|██▏       | 280/1261 [01:10<04:21,  3.75it/s]
 22%|██▏       | 281/1261 [01:11<04:21,  3.75it/s]
 22%|██▏       | 282/1261 [01:11<04:25,  3.69it/s]
 22%|██▏       | 283/1261 [01:11<04:23,  3.71it/s]
 23%|██▎       | 284/1261 [01:11<04:23,  3.71it/s]
 23%|██▎       | 285/1261 [01:12<04:15,  3.82it/s]
 23%|██▎       | 286/1261 [01:12<04:18,  3.76it/s]
 23%|██▎       | 287/1261 [01:12<04:20,  3.74it/s]
 23%|██▎       | 288/1261 [01:12<04:16,  3.79it/s]
 23%|██▎       | 289/1261 [01:13<04:13,  3.83it/s]
 23%|██▎       | 290/1261 [01:13<04:13,  3.83it/s]
 23%|██▎       | 291/1261 [01:13<04:12,  3.84it/s]
 23%|██▎       | 292/1261 [01:13<04:11,  3.85it/s]
 23%|██▎       | 293/1261 [01:14<04:10,  3.86it/s]
 23%|██▎       | 294/1261 [01:14<04:12,  3.82it/s]
 23%|██▎       | 295/1261 [01:14<04:11,  3.83it/s]
 23%|██▎       | 296/1261 [01:15<04:15,  3.77it/s]
 24%|██▎       | 297/1261 [01:15<04:16,  3.75it/s]
 24%|██▎       | 298/1261 [01:15<04:18,  3.73it/s]
 24%|██▎       | 299/1261 [01:15<04:46,  3.36it/s]
 24%|██▍       | 300/1261 [01:16<04:44,  3.38it/s]
 24%|██▍       | 301/1261 [01:16<04:40,  3.42it/s]
 24%|██▍       | 302/1261 [01:16<04:37,  3.45it/s]
 24%|██▍       | 303/1261 [01:17<04:33,  3.50it/s]
 24%|██▍       | 304/1261 [01:17<04:32,  3.51it/s]
 24%|██▍       | 305/1261 [01:17<04:44,  3.36it/s]
 24%|██▍       | 306/1261 [01:17<04:30,  3.53it/s]
 24%|██▍       | 307/1261 [01:18<04:31,  3.52it/s]
 24%|██▍       | 308/1261 [01:18<04:34,  3.47it/s]
 25%|██▍       | 309/1261 [01:18<04:31,  3.50it/s]
 25%|██▍       | 310/1261 [01:19<04:37,  3.42it/s]
 25%|██▍       | 311/1261 [01:19<04:29,  3.52it/s]
 25%|██▍       | 312/1261 [01:19<04:26,  3.56it/s]
 25%|██▍       | 313/1261 [01:19<04:23,  3.60it/s]
 25%|██▍       | 314/1261 [01:20<04:19,  3.65it/s]
 25%|██▍       | 315/1261 [01:20<04:16,  3.69it/s]
 25%|██▌       | 316/1261 [01:20<04:15,  3.70it/s]
 25%|██▌       | 317/1261 [01:21<04:17,  3.66it/s]
 25%|██▌       | 318/1261 [01:21<04:28,  3.51it/s]
 25%|██▌       | 319/1261 [01:21<04:30,  3.48it/s]
 25%|██▌       | 320/1261 [01:21<04:45,  3.29it/s]
 25%|██▌       | 321/1261 [01:22<04:38,  3.37it/s]
 26%|██▌       | 322/1261 [01:22<04:34,  3.42it/s]
 26%|██▌       | 323/1261 [01:22<04:32,  3.44it/s]
 26%|██▌       | 324/1261 [01:23<04:25,  3.52it/s]
 26%|██▌       | 325/1261 [01:23<04:22,  3.57it/s]
 26%|██▌       | 326/1261 [01:23<04:18,  3.61it/s]
 26%|██▌       | 327/1261 [01:23<04:18,  3.61it/s]
 26%|██▌       | 328/1261 [01:24<04:14,  3.67it/s]
 26%|██▌       | 329/1261 [01:24<04:13,  3.67it/s]
 26%|██▌       | 330/1261 [01:24<04:09,  3.73it/s]
 26%|██▌       | 331/1261 [01:24<04:11,  3.70it/s]
 26%|██▋       | 332/1261 [01:25<04:09,  3.72it/s]
 26%|██▋       | 333/1261 [01:25<04:17,  3.60it/s]
 26%|██▋       | 334/1261 [01:25<04:11,  3.69it/s]
 27%|██▋       | 335/1261 [01:26<04:10,  3.70it/s]
 27%|██▋       | 336/1261 [01:26<04:07,  3.73it/s]
 27%|██▋       | 337/1261 [01:26<04:03,  3.80it/s]
 27%|██▋       | 338/1261 [01:26<04:00,  3.84it/s]
 27%|██▋       | 339/1261 [01:27<03:56,  3.90it/s]
 27%|██▋       | 340/1261 [01:27<03:55,  3.91it/s]
 27%|██▋       | 341/1261 [01:27<03:56,  3.89it/s]
 27%|██▋       | 342/1261 [01:27<03:56,  3.89it/s]
 27%|██▋       | 343/1261 [01:28<03:52,  3.95it/s]
 27%|██▋       | 344/1261 [01:28<03:52,  3.95it/s]
 27%|██▋       | 345/1261 [01:28<03:55,  3.89it/s]
 27%|██▋       | 346/1261 [01:28<03:56,  3.87it/s]
 28%|██▊       | 347/1261 [01:29<04:07,  3.70it/s]
 28%|██▊       | 348/1261 [01:29<04:09,  3.67it/s]
 28%|██▊       | 349/1261 [01:29<04:09,  3.66it/s]
 28%|██▊       | 350/1261 [01:29<04:09,  3.65it/s]
 28%|██▊       | 351/1261 [01:30<04:06,  3.70it/s]
 28%|██▊       | 352/1261 [01:30<04:03,  3.73it/s]
 28%|██▊       | 353/1261 [01:30<04:03,  3.72it/s]
 28%|██▊       | 354/1261 [01:31<04:05,  3.69it/s]
 28%|██▊       | 355/1261 [01:31<04:06,  3.68it/s]
 28%|██▊       | 356/1261 [01:31<04:12,  3.58it/s]
 28%|██▊       | 357/1261 [01:31<04:24,  3.42it/s]
 28%|██▊       | 358/1261 [01:32<04:24,  3.42it/s]
 28%|██▊       | 359/1261 [01:32<04:16,  3.52it/s]
 29%|██▊       | 360/1261 [01:32<04:10,  3.60it/s]
 29%|██▊       | 361/1261 [01:33<04:05,  3.67it/s]
 29%|██▊       | 362/1261 [01:33<04:04,  3.68it/s]
 29%|██▉       | 363/1261 [01:33<04:02,  3.70it/s]
 29%|██▉       | 364/1261 [01:33<04:01,  3.71it/s]
 29%|██▉       | 365/1261 [01:34<04:02,  3.69it/s]
 29%|██▉       | 366/1261 [01:34<03:59,  3.74it/s]
 29%|██▉       | 367/1261 [01:34<03:59,  3.73it/s]
 29%|██▉       | 368/1261 [01:34<04:00,  3.71it/s]
 29%|██▉       | 369/1261 [01:35<03:57,  3.75it/s]
 29%|██▉       | 370/1261 [01:35<03:56,  3.76it/s]
 29%|██▉       | 371/1261 [01:35<04:00,  3.70it/s]
 30%|██▉       | 372/1261 [01:35<03:58,  3.73it/s]
 30%|██▉       | 373/1261 [01:36<03:56,  3.76it/s]
 30%|██▉       | 374/1261 [01:36<03:59,  3.71it/s]
 30%|██▉       | 375/1261 [01:36<03:58,  3.71it/s]
 30%|██▉       | 376/1261 [01:37<04:00,  3.69it/s]
 30%|██▉       | 377/1261 [01:37<04:01,  3.67it/s]
 30%|██▉       | 378/1261 [01:37<03:58,  3.70it/s]
 30%|███       | 379/1261 [01:37<03:57,  3.72it/s]
 30%|███       | 380/1261 [01:38<03:56,  3.72it/s]
 30%|███       | 381/1261 [01:38<03:51,  3.81it/s]
 30%|███       | 382/1261 [01:38<03:50,  3.82it/s]
 30%|███       | 383/1261 [01:38<03:49,  3.83it/s]
 30%|███       | 384/1261 [01:39<03:46,  3.87it/s]
 31%|███       | 385/1261 [01:39<03:44,  3.90it/s]
 31%|███       | 386/1261 [01:39<03:41,  3.95it/s]
 31%|███       | 387/1261 [01:39<03:41,  3.95it/s]
 31%|███       | 388/1261 [01:40<03:46,  3.85it/s]
 31%|███       | 389/1261 [01:40<03:46,  3.85it/s]
 31%|███       | 390/1261 [01:40<03:44,  3.87it/s]
 31%|███       | 391/1261 [01:40<03:41,  3.93it/s]
 31%|███       | 392/1261 [01:41<03:38,  3.97it/s]
 31%|███       | 393/1261 [01:41<03:35,  4.03it/s]
 31%|███       | 394/1261 [01:41<03:34,  4.05it/s]
 31%|███▏      | 395/1261 [01:41<03:34,  4.04it/s]
 31%|███▏      | 396/1261 [01:42<03:33,  4.05it/s]
 31%|███▏      | 397/1261 [01:42<03:34,  4.04it/s]
 32%|███▏      | 398/1261 [01:42<03:32,  4.06it/s]
 32%|███▏      | 399/1261 [01:42<03:34,  4.01it/s]
 32%|███▏      | 400/1261 [01:43<03:34,  4.01it/s]
 32%|███▏      | 401/1261 [01:43<03:34,  4.02it/s]
 32%|███▏      | 402/1261 [01:43<03:31,  4.05it/s]
 32%|███▏      | 403/1261 [01:43<03:31,  4.07it/s]
 32%|███▏      | 404/1261 [01:44<03:28,  4.10it/s]
 32%|███▏      | 405/1261 [01:44<03:29,  4.08it/s]
 32%|███▏      | 406/1261 [01:44<03:28,  4.09it/s]
 32%|███▏      | 407/1261 [01:44<03:31,  4.03it/s]
 32%|███▏      | 408/1261 [01:45<03:35,  3.95it/s]
 32%|███▏      | 409/1261 [01:45<03:38,  3.91it/s]
 33%|███▎      | 410/1261 [01:45<03:40,  3.86it/s]
 33%|███▎      | 411/1261 [01:45<03:36,  3.93it/s]
 33%|███▎      | 412/1261 [01:46<03:35,  3.95it/s]
 33%|███▎      | 413/1261 [01:46<03:34,  3.95it/s]
 33%|███▎      | 414/1261 [01:46<03:31,  4.01it/s]
 33%|███▎      | 415/1261 [01:46<03:31,  3.99it/s]
 33%|███▎      | 416/1261 [01:47<03:31,  3.99it/s]
 33%|███▎      | 417/1261 [01:47<03:32,  3.98it/s]
 33%|███▎      | 418/1261 [01:47<03:30,  4.01it/s]
 33%|███▎      | 419/1261 [01:47<03:33,  3.95it/s]
 33%|███▎      | 420/1261 [01:48<03:36,  3.89it/s]
 33%|███▎      | 421/1261 [01:48<03:40,  3.81it/s]
 33%|███▎      | 422/1261 [01:48<03:41,  3.78it/s]
 34%|███▎      | 423/1261 [01:49<03:42,  3.76it/s]
 34%|███▎      | 424/1261 [01:49<03:44,  3.74it/s]
 34%|███▎      | 425/1261 [01:49<03:44,  3.73it/s]
 34%|███▍      | 426/1261 [01:49<03:47,  3.66it/s]
 34%|███▍      | 427/1261 [01:50<03:47,  3.67it/s]
 34%|███▍      | 428/1261 [01:50<03:47,  3.66it/s]
 34%|███▍      | 429/1261 [01:50<03:47,  3.65it/s]
 34%|███▍      | 430/1261 [01:50<03:44,  3.70it/s]
 34%|███▍      | 431/1261 [01:51<03:43,  3.71it/s]
 34%|███▍      | 432/1261 [01:51<03:40,  3.76it/s]
 34%|███▍      | 433/1261 [01:51<03:49,  3.61it/s]
 34%|███▍      | 434/1261 [01:52<03:52,  3.56it/s]
 34%|███▍      | 435/1261 [01:52<03:49,  3.60it/s]
 35%|███▍      | 436/1261 [01:52<03:44,  3.68it/s]
 35%|███▍      | 437/1261 [01:52<03:41,  3.71it/s]
 35%|███▍      | 438/1261 [01:53<03:45,  3.65it/s]
 35%|███▍      | 439/1261 [01:53<03:43,  3.67it/s]
 35%|███▍      | 440/1261 [01:53<03:42,  3.68it/s]
 35%|███▍      | 441/1261 [01:53<03:43,  3.66it/s]
 35%|███▌      | 442/1261 [01:54<03:38,  3.75it/s]
 35%|███▌      | 443/1261 [01:54<03:34,  3.81it/s]
 35%|███▌      | 444/1261 [01:54<03:34,  3.81it/s]
 35%|███▌      | 445/1261 [01:54<03:33,  3.82it/s]
 35%|███▌      | 446/1261 [01:55<03:33,  3.81it/s]
 35%|███▌      | 447/1261 [01:55<03:33,  3.81it/s]
 36%|███▌      | 448/1261 [01:55<03:31,  3.84it/s]
 36%|███▌      | 449/1261 [01:55<03:30,  3.86it/s]
 36%|███▌      | 450/1261 [01:56<03:30,  3.85it/s]
 36%|███▌      | 451/1261 [01:56<03:28,  3.88it/s]
 36%|███▌      | 452/1261 [01:56<03:26,  3.91it/s]
 36%|███▌      | 453/1261 [01:57<03:27,  3.90it/s]
 36%|███▌      | 454/1261 [01:57<03:35,  3.75it/s]
 36%|███▌      | 455/1261 [01:57<03:30,  3.82it/s]
 36%|███▌      | 456/1261 [01:57<03:30,  3.83it/s]
 36%|███▌      | 457/1261 [01:58<03:29,  3.84it/s]
 36%|███▋      | 458/1261 [01:58<03:29,  3.83it/s]
 36%|███▋      | 459/1261 [01:58<03:29,  3.82it/s]
 36%|███▋      | 460/1261 [01:58<03:31,  3.79it/s]
 37%|███▋      | 461/1261 [01:59<03:31,  3.79it/s]
 37%|███▋      | 462/1261 [01:59<03:30,  3.80it/s]
 37%|███▋      | 463/1261 [01:59<03:30,  3.80it/s]
 37%|███▋      | 464/1261 [01:59<03:29,  3.80it/s]
 37%|███▋      | 465/1261 [02:00<03:28,  3.81it/s]
 37%|███▋      | 466/1261 [02:00<03:27,  3.83it/s]
 37%|███▋      | 467/1261 [02:00<03:27,  3.84it/s]
 37%|███▋      | 468/1261 [02:00<03:28,  3.81it/s]
 37%|███▋      | 469/1261 [02:01<03:26,  3.84it/s]
 37%|███▋      | 470/1261 [02:01<03:25,  3.85it/s]
 37%|███▋      | 471/1261 [02:01<03:25,  3.84it/s]
 37%|███▋      | 472/1261 [02:02<03:29,  3.77it/s]
 38%|███▊      | 473/1261 [02:02<03:29,  3.76it/s]
 38%|███▊      | 474/1261 [02:02<03:29,  3.75it/s]
 38%|███▊      | 475/1261 [02:02<03:28,  3.76it/s]
 38%|███▊      | 476/1261 [02:03<03:30,  3.74it/s]
 38%|███▊      | 477/1261 [02:03<03:26,  3.79it/s]
 38%|███▊      | 478/1261 [02:03<03:28,  3.76it/s]
 38%|███▊      | 479/1261 [02:03<03:27,  3.76it/s]
 38%|███▊      | 480/1261 [02:04<03:29,  3.74it/s]
 38%|███▊      | 481/1261 [02:04<03:24,  3.81it/s]
 38%|███▊      | 482/1261 [02:04<03:24,  3.81it/s]
 38%|███▊      | 483/1261 [02:04<03:23,  3.83it/s]
 38%|███▊      | 484/1261 [02:05<03:19,  3.90it/s]
 38%|███▊      | 485/1261 [02:05<03:18,  3.90it/s]
 39%|███▊      | 486/1261 [02:05<03:23,  3.80it/s]
 39%|███▊      | 487/1261 [02:05<03:23,  3.80it/s]
 39%|███▊      | 488/1261 [02:06<03:24,  3.78it/s]
 39%|███▉      | 489/1261 [02:06<03:21,  3.84it/s]
 39%|███▉      | 490/1261 [02:06<03:20,  3.85it/s]
 39%|███▉      | 491/1261 [02:07<03:20,  3.84it/s]
 39%|███▉      | 492/1261 [02:07<03:15,  3.93it/s]
 39%|███▉      | 493/1261 [02:07<03:12,  4.00it/s]
 39%|███▉      | 494/1261 [02:07<03:13,  3.97it/s]
 39%|███▉      | 495/1261 [02:07<03:11,  3.99it/s]
 39%|███▉      | 496/1261 [02:08<03:14,  3.94it/s]
 39%|███▉      | 497/1261 [02:08<03:13,  3.96it/s]
 39%|███▉      | 498/1261 [02:08<03:10,  4.01it/s]
 40%|███▉      | 499/1261 [02:08<03:08,  4.04it/s]
 40%|███▉      | 500/1261 [02:09<03:11,  3.97it/s]
 40%|███▉      | 501/1261 [02:09<03:08,  4.02it/s]
 40%|███▉      | 502/1261 [02:09<03:07,  4.04it/s]
 40%|███▉      | 503/1261 [02:10<03:13,  3.92it/s]
 40%|███▉      | 504/1261 [02:10<03:14,  3.88it/s]
 40%|████      | 505/1261 [02:10<03:18,  3.80it/s]
 40%|████      | 506/1261 [02:10<03:18,  3.80it/s]
 40%|████      | 507/1261 [02:11<03:18,  3.79it/s]
 40%|████      | 508/1261 [02:11<03:16,  3.83it/s]
 40%|████      | 509/1261 [02:11<03:17,  3.81it/s]
 40%|████      | 510/1261 [02:11<03:16,  3.83it/s]
 41%|████      | 511/1261 [02:12<03:13,  3.88it/s]
 41%|████      | 512/1261 [02:12<03:15,  3.84it/s]
 41%|████      | 513/1261 [02:12<03:12,  3.89it/s]
 41%|████      | 514/1261 [02:12<03:12,  3.87it/s]
 41%|████      | 515/1261 [02:13<03:12,  3.87it/s]
 41%|████      | 516/1261 [02:13<03:14,  3.83it/s]
 41%|████      | 517/1261 [02:13<03:12,  3.87it/s]
 41%|████      | 518/1261 [02:13<03:11,  3.88it/s]
 41%|████      | 519/1261 [02:14<03:11,  3.88it/s]
 41%|████      | 520/1261 [02:14<03:10,  3.89it/s]
 41%|████▏     | 521/1261 [02:14<03:10,  3.89it/s]
 41%|████▏     | 522/1261 [02:14<03:08,  3.92it/s]
 41%|████▏     | 523/1261 [02:15<03:07,  3.94it/s]
 42%|████▏     | 524/1261 [02:15<03:08,  3.92it/s]
 42%|████▏     | 525/1261 [02:15<03:08,  3.90it/s]
 42%|████▏     | 526/1261 [02:15<03:10,  3.85it/s]
 42%|████▏     | 527/1261 [02:16<03:06,  3.93it/s]
 42%|████▏     | 528/1261 [02:16<03:07,  3.91it/s]
 42%|████▏     | 529/1261 [02:16<03:06,  3.93it/s]
 42%|████▏     | 530/1261 [02:16<03:08,  3.88it/s]
 42%|████▏     | 531/1261 [02:17<03:06,  3.92it/s]
 42%|████▏     | 532/1261 [02:17<03:07,  3.89it/s]
 42%|████▏     | 533/1261 [02:17<03:07,  3.87it/s]
 42%|████▏     | 534/1261 [02:18<03:10,  3.82it/s]
 42%|████▏     | 535/1261 [02:18<03:10,  3.81it/s]
 43%|████▎     | 536/1261 [02:18<03:10,  3.80it/s]
 43%|████▎     | 537/1261 [02:18<03:11,  3.78it/s]
 43%|████▎     | 538/1261 [02:19<03:11,  3.77it/s]
 43%|████▎     | 539/1261 [02:19<03:11,  3.76it/s]
 43%|████▎     | 540/1261 [02:19<03:16,  3.68it/s]
 43%|████▎     | 541/1261 [02:19<03:17,  3.65it/s]
 43%|████▎     | 542/1261 [02:20<03:17,  3.63it/s]
 43%|████▎     | 543/1261 [02:20<03:14,  3.70it/s]
 43%|████▎     | 544/1261 [02:20<03:09,  3.78it/s]
 43%|████▎     | 545/1261 [02:20<03:08,  3.80it/s]
 43%|████▎     | 546/1261 [02:21<03:06,  3.83it/s]
 43%|████▎     | 547/1261 [02:21<03:04,  3.87it/s]
 43%|████▎     | 548/1261 [02:21<03:04,  3.86it/s]
 44%|████▎     | 549/1261 [02:21<03:03,  3.89it/s]
 44%|████▎     | 550/1261 [02:22<03:02,  3.90it/s]
 44%|████▎     | 551/1261 [02:22<03:01,  3.90it/s]
 44%|████▍     | 552/1261 [02:22<03:02,  3.89it/s]
 44%|████▍     | 553/1261 [02:23<03:01,  3.89it/s]
 44%|████▍     | 554/1261 [02:23<03:01,  3.89it/s]
 44%|████▍     | 555/1261 [02:23<03:01,  3.90it/s]
 44%|████▍     | 556/1261 [02:23<03:00,  3.90it/s]
 44%|████▍     | 557/1261 [02:24<03:01,  3.87it/s]
 44%|████▍     | 558/1261 [02:24<03:01,  3.88it/s]
 44%|████▍     | 559/1261 [02:24<03:00,  3.90it/s]
 44%|████▍     | 560/1261 [02:24<03:00,  3.89it/s]
 44%|████▍     | 561/1261 [02:25<03:01,  3.86it/s]
 45%|████▍     | 562/1261 [02:25<03:02,  3.83it/s]
 45%|████▍     | 563/1261 [02:25<03:03,  3.81it/s]
 45%|████▍     | 564/1261 [02:25<03:02,  3.82it/s]
 45%|████▍     | 565/1261 [02:26<03:01,  3.84it/s]
 45%|████▍     | 566/1261 [02:26<03:01,  3.82it/s]
 45%|████▍     | 567/1261 [02:26<03:00,  3.84it/s]
 45%|████▌     | 568/1261 [02:26<03:01,  3.82it/s]
 45%|████▌     | 569/1261 [02:27<03:00,  3.84it/s]
 45%|████▌     | 570/1261 [02:27<03:00,  3.83it/s]
 45%|████▌     | 571/1261 [02:27<02:58,  3.87it/s]
 45%|████▌     | 572/1261 [02:27<02:57,  3.88it/s]
 45%|████▌     | 573/1261 [02:28<02:56,  3.90it/s]
 46%|████▌     | 574/1261 [02:28<02:56,  3.89it/s]
 46%|████▌     | 575/1261 [02:28<02:56,  3.89it/s]
 46%|████▌     | 576/1261 [02:28<02:57,  3.86it/s]
 46%|████▌     | 577/1261 [02:29<02:58,  3.84it/s]
 46%|████▌     | 578/1261 [02:29<02:57,  3.85it/s]
 46%|████▌     | 579/1261 [02:29<02:57,  3.84it/s]
 46%|████▌     | 580/1261 [02:30<03:10,  3.58it/s]
 46%|████▌     | 581/1261 [02:30<03:13,  3.52it/s]
 46%|████▌     | 582/1261 [02:30<03:12,  3.54it/s]
 46%|████▌     | 583/1261 [02:30<03:08,  3.59it/s]
 46%|████▋     | 584/1261 [02:31<03:08,  3.59it/s]
 46%|████▋     | 585/1261 [02:31<03:08,  3.59it/s]
 46%|████▋     | 586/1261 [02:31<03:05,  3.63it/s]
 47%|████▋     | 587/1261 [02:32<03:04,  3.66it/s]
 47%|████▋     | 588/1261 [02:32<03:01,  3.70it/s]
 47%|████▋     | 589/1261 [02:32<02:59,  3.74it/s]
 47%|████▋     | 590/1261 [02:32<02:59,  3.75it/s]
 47%|████▋     | 591/1261 [02:33<02:57,  3.77it/s]
 47%|████▋     | 592/1261 [02:33<02:58,  3.74it/s]
 47%|████▋     | 593/1261 [02:33<02:57,  3.76it/s]
 47%|████▋     | 594/1261 [02:33<02:55,  3.79it/s]
 47%|████▋     | 595/1261 [02:34<02:57,  3.76it/s]
 47%|████▋     | 596/1261 [02:34<02:58,  3.72it/s]
 47%|████▋     | 597/1261 [02:34<02:54,  3.80it/s]
 47%|████▋     | 598/1261 [02:34<02:54,  3.81it/s]
 48%|████▊     | 599/1261 [02:35<02:54,  3.79it/s]
 48%|████▊     | 600/1261 [02:35<02:55,  3.78it/s]
 48%|████▊     | 601/1261 [02:35<02:51,  3.85it/s]
 48%|████▊     | 602/1261 [02:35<02:49,  3.89it/s]
 48%|████▊     | 603/1261 [02:36<02:49,  3.88it/s]
 48%|████▊     | 604/1261 [02:36<02:48,  3.90it/s]
 48%|████▊     | 605/1261 [02:36<02:47,  3.92it/s]
 48%|████▊     | 606/1261 [02:36<02:46,  3.95it/s]
 48%|████▊     | 607/1261 [02:37<02:44,  3.97it/s]
 48%|████▊     | 608/1261 [02:37<02:43,  3.99it/s]
 48%|████▊     | 609/1261 [02:37<02:43,  4.00it/s]
 48%|████▊     | 610/1261 [02:37<02:44,  3.96it/s]
 48%|████▊     | 611/1261 [02:38<02:42,  3.99it/s]
 49%|████▊     | 612/1261 [02:38<02:43,  3.97it/s]
 49%|████▊     | 613/1261 [02:38<02:44,  3.94it/s]
 49%|████▊     | 614/1261 [02:38<02:45,  3.92it/s]
 49%|████▉     | 615/1261 [02:39<02:44,  3.93it/s]
 49%|████▉     | 616/1261 [02:39<02:43,  3.94it/s]
 49%|████▉     | 617/1261 [02:39<02:42,  3.95it/s]
 49%|████▉     | 618/1261 [02:40<02:47,  3.84it/s]
 49%|████▉     | 619/1261 [02:40<02:45,  3.89it/s]
 49%|████▉     | 620/1261 [02:40<02:43,  3.92it/s]
 49%|████▉     | 621/1261 [02:40<02:44,  3.90it/s]
 49%|████▉     | 622/1261 [02:41<02:42,  3.93it/s]
 49%|████▉     | 623/1261 [02:41<02:42,  3.92it/s]
 49%|████▉     | 624/1261 [02:41<02:43,  3.89it/s]
 50%|████▉     | 625/1261 [02:41<02:41,  3.94it/s]
 50%|████▉     | 626/1261 [02:42<02:42,  3.91it/s]
 50%|████▉     | 627/1261 [02:42<02:41,  3.92it/s]
 50%|████▉     | 628/1261 [02:42<02:40,  3.94it/s]
 50%|████▉     | 629/1261 [02:42<02:40,  3.94it/s]
 50%|████▉     | 630/1261 [02:43<02:41,  3.92it/s]
 50%|█████     | 631/1261 [02:43<02:38,  3.97it/s]
 50%|█████     | 632/1261 [02:43<02:37,  3.99it/s]
 50%|█████     | 633/1261 [02:43<02:38,  3.95it/s]
 50%|█████     | 634/1261 [02:44<02:39,  3.92it/s]
 50%|█████     | 635/1261 [02:44<02:37,  3.97it/s]
 50%|█████     | 636/1261 [02:44<02:37,  3.97it/s]
 51%|█████     | 637/1261 [02:44<02:37,  3.96it/s]
 51%|█████     | 638/1261 [02:45<02:38,  3.94it/s]
 51%|█████     | 639/1261 [02:45<02:36,  3.98it/s]
 51%|█████     | 640/1261 [02:45<02:36,  3.96it/s]
 51%|█████     | 641/1261 [02:45<02:35,  3.98it/s]
 51%|█████     | 642/1261 [02:46<02:36,  3.95it/s]
 51%|█████     | 643/1261 [02:46<02:37,  3.91it/s]
 51%|█████     | 644/1261 [02:46<02:36,  3.93it/s]
 51%|█████     | 645/1261 [02:46<02:37,  3.90it/s]
 51%|█████     | 646/1261 [02:47<02:37,  3.91it/s]
 51%|█████▏    | 647/1261 [02:47<02:36,  3.93it/s]
 51%|█████▏    | 648/1261 [02:47<02:34,  3.96it/s]
 51%|█████▏    | 649/1261 [02:47<02:35,  3.94it/s]
 52%|█████▏    | 650/1261 [02:48<02:36,  3.90it/s]
 52%|█████▏    | 651/1261 [02:48<02:35,  3.92it/s]
 52%|█████▏    | 652/1261 [02:48<02:35,  3.92it/s]
 52%|█████▏    | 653/1261 [02:48<02:35,  3.91it/s]
 52%|█████▏    | 654/1261 [02:49<02:34,  3.93it/s]
 52%|█████▏    | 655/1261 [02:49<02:32,  3.97it/s]
 52%|█████▏    | 656/1261 [02:49<02:32,  3.96it/s]
 52%|█████▏    | 657/1261 [02:49<02:35,  3.89it/s]
 52%|█████▏    | 658/1261 [02:50<02:33,  3.92it/s]
 52%|█████▏    | 659/1261 [02:50<02:33,  3.93it/s]
 52%|█████▏    | 660/1261 [02:50<02:32,  3.95it/s]
 52%|█████▏    | 661/1261 [02:50<02:31,  3.96it/s]
 52%|█████▏    | 662/1261 [02:51<02:31,  3.96it/s]
 53%|█████▎    | 663/1261 [02:51<02:31,  3.95it/s]
 53%|█████▎    | 664/1261 [02:51<02:30,  3.97it/s]
 53%|█████▎    | 665/1261 [02:51<02:31,  3.93it/s]
 53%|█████▎    | 666/1261 [02:52<02:30,  3.95it/s]
 53%|█████▎    | 667/1261 [02:52<02:29,  3.96it/s]
 53%|█████▎    | 668/1261 [02:52<02:29,  3.97it/s]
 53%|█████▎    | 669/1261 [02:52<02:28,  3.99it/s]
 53%|█████▎    | 670/1261 [02:53<02:27,  4.01it/s]
 53%|█████▎    | 671/1261 [02:53<02:27,  4.00it/s]
 53%|█████▎    | 672/1261 [02:53<02:28,  3.96it/s]
 53%|█████▎    | 673/1261 [02:53<02:29,  3.94it/s]
 53%|█████▎    | 674/1261 [02:54<02:28,  3.94it/s]
 54%|█████▎    | 675/1261 [02:54<02:28,  3.94it/s]
 54%|█████▎    | 676/1261 [02:54<02:27,  3.96it/s]
 54%|█████▎    | 677/1261 [02:54<02:28,  3.93it/s]
 54%|█████▍    | 678/1261 [02:55<02:28,  3.92it/s]
 54%|█████▍    | 679/1261 [02:55<02:29,  3.89it/s]
 54%|█████▍    | 680/1261 [02:55<02:28,  3.92it/s]
 54%|█████▍    | 681/1261 [02:56<02:27,  3.92it/s]
 54%|█████▍    | 682/1261 [02:56<02:27,  3.93it/s]
 54%|█████▍    | 683/1261 [02:56<02:26,  3.95it/s]
 54%|█████▍    | 684/1261 [02:56<02:28,  3.88it/s]
 54%|█████▍    | 685/1261 [02:57<02:28,  3.87it/s]
 54%|█████▍    | 686/1261 [02:57<02:29,  3.86it/s]
 54%|█████▍    | 687/1261 [02:57<02:28,  3.85it/s]
 55%|█████▍    | 688/1261 [02:57<02:28,  3.85it/s]
 55%|█████▍    | 689/1261 [02:58<02:27,  3.87it/s]
 55%|█████▍    | 690/1261 [02:58<02:27,  3.87it/s]
 55%|█████▍    | 691/1261 [02:58<02:25,  3.92it/s]
 55%|█████▍    | 692/1261 [02:58<02:23,  3.96it/s]
 55%|█████▍    | 693/1261 [02:59<02:24,  3.94it/s]
 55%|█████▌    | 694/1261 [02:59<02:23,  3.95it/s]
 55%|█████▌    | 695/1261 [02:59<02:21,  3.99it/s]
 55%|█████▌    | 696/1261 [02:59<02:22,  3.95it/s]
 55%|█████▌    | 697/1261 [03:00<02:22,  3.95it/s]
 55%|█████▌    | 698/1261 [03:00<02:22,  3.95it/s]
 55%|█████▌    | 699/1261 [03:00<02:21,  3.96it/s]
 56%|█████▌    | 700/1261 [03:00<02:22,  3.95it/s]
 56%|█████▌    | 701/1261 [03:01<02:22,  3.94it/s]
 56%|█████▌    | 702/1261 [03:01<02:21,  3.94it/s]
 56%|█████▌    | 703/1261 [03:01<02:21,  3.94it/s]
 56%|█████▌    | 704/1261 [03:01<02:20,  3.95it/s]
 56%|█████▌    | 705/1261 [03:02<02:21,  3.92it/s]
 56%|█████▌    | 706/1261 [03:02<02:21,  3.92it/s]
 56%|█████▌    | 707/1261 [03:02<02:21,  3.92it/s]
 56%|█████▌    | 708/1261 [03:02<02:20,  3.95it/s]
 56%|█████▌    | 709/1261 [03:03<02:20,  3.92it/s]
 56%|█████▋    | 710/1261 [03:03<02:20,  3.92it/s]
 56%|█████▋    | 711/1261 [03:03<02:19,  3.94it/s]
 56%|█████▋    | 712/1261 [03:03<02:22,  3.85it/s]
 57%|█████▋    | 713/1261 [03:04<02:22,  3.84it/s]
 57%|█████▋    | 714/1261 [03:04<02:20,  3.88it/s]
 57%|█████▋    | 715/1261 [03:04<02:19,  3.91it/s]
 57%|█████▋    | 716/1261 [03:04<02:20,  3.88it/s]
 57%|█████▋    | 717/1261 [03:05<02:19,  3.91it/s]
 57%|█████▋    | 718/1261 [03:05<02:18,  3.91it/s]
 57%|█████▋    | 719/1261 [03:05<02:18,  3.93it/s]
 57%|█████▋    | 720/1261 [03:05<02:19,  3.87it/s]
 57%|█████▋    | 721/1261 [03:06<02:19,  3.88it/s]
 57%|█████▋    | 722/1261 [03:06<02:18,  3.90it/s]
 57%|█████▋    | 723/1261 [03:06<02:18,  3.90it/s]
 57%|█████▋    | 724/1261 [03:07<02:17,  3.89it/s]
 57%|█████▋    | 725/1261 [03:07<02:16,  3.93it/s]
 58%|█████▊    | 726/1261 [03:07<02:16,  3.92it/s]
 58%|█████▊    | 727/1261 [03:07<02:16,  3.91it/s]
 58%|█████▊    | 728/1261 [03:08<02:17,  3.88it/s]
 58%|█████▊    | 729/1261 [03:08<02:16,  3.91it/s]
 58%|█████▊    | 730/1261 [03:08<02:15,  3.91it/s]
 58%|█████▊    | 731/1261 [03:08<02:14,  3.94it/s]
 58%|█████▊    | 732/1261 [03:09<02:16,  3.88it/s]
 58%|█████▊    | 733/1261 [03:09<02:14,  3.92it/s]
 58%|█████▊    | 734/1261 [03:09<02:14,  3.91it/s]
 58%|█████▊    | 735/1261 [03:09<02:14,  3.91it/s]
 58%|█████▊    | 736/1261 [03:10<02:17,  3.82it/s]
 58%|█████▊    | 737/1261 [03:10<02:16,  3.83it/s]
 59%|█████▊    | 738/1261 [03:10<02:16,  3.83it/s]
 59%|█████▊    | 739/1261 [03:10<02:15,  3.84it/s]
 59%|█████▊    | 740/1261 [03:11<02:17,  3.79it/s]
 59%|█████▉    | 741/1261 [03:11<02:17,  3.78it/s]
 59%|█████▉    | 742/1261 [03:11<02:17,  3.77it/s]
 59%|█████▉    | 743/1261 [03:11<02:18,  3.75it/s]
 59%|█████▉    | 744/1261 [03:12<02:17,  3.76it/s]
 59%|█████▉    | 745/1261 [03:12<02:16,  3.78it/s]
 59%|█████▉    | 746/1261 [03:12<02:14,  3.83it/s]
 59%|█████▉    | 747/1261 [03:12<02:15,  3.80it/s]
 59%|█████▉    | 748/1261 [03:13<02:14,  3.80it/s]
 59%|█████▉    | 749/1261 [03:13<02:14,  3.82it/s]
 59%|█████▉    | 750/1261 [03:13<02:12,  3.87it/s]
 60%|█████▉    | 751/1261 [03:14<02:11,  3.88it/s]
 60%|█████▉    | 752/1261 [03:14<02:11,  3.88it/s]
 60%|█████▉    | 753/1261 [03:14<02:11,  3.85it/s]
 60%|█████▉    | 754/1261 [03:14<02:11,  3.86it/s]
 60%|█████▉    | 755/1261 [03:15<02:11,  3.84it/s]
 60%|█████▉    | 756/1261 [03:15<02:10,  3.86it/s]
 60%|██████    | 757/1261 [03:15<02:10,  3.85it/s]
 60%|██████    | 758/1261 [03:15<02:11,  3.84it/s]
 60%|██████    | 759/1261 [03:16<02:10,  3.85it/s]
 60%|██████    | 760/1261 [03:16<02:09,  3.87it/s]
 60%|██████    | 761/1261 [03:16<02:09,  3.86it/s]
 60%|██████    | 762/1261 [03:16<02:08,  3.88it/s]
 61%|██████    | 763/1261 [03:17<02:08,  3.89it/s]
 61%|██████    | 764/1261 [03:17<02:08,  3.87it/s]
 61%|██████    | 765/1261 [03:17<02:08,  3.87it/s]
 61%|██████    | 766/1261 [03:17<02:08,  3.85it/s]
 61%|██████    | 767/1261 [03:18<02:07,  3.87it/s]
 61%|██████    | 768/1261 [03:18<02:05,  3.92it/s]
 61%|██████    | 769/1261 [03:18<02:06,  3.88it/s]
 61%|██████    | 770/1261 [03:18<02:05,  3.91it/s]
 61%|██████    | 771/1261 [03:19<02:04,  3.93it/s]
 61%|██████    | 772/1261 [03:19<02:02,  4.00it/s]
 61%|██████▏   | 773/1261 [03:19<02:01,  4.03it/s]
 61%|██████▏   | 774/1261 [03:19<02:01,  4.01it/s]
 61%|██████▏   | 775/1261 [03:20<02:00,  4.02it/s]
 62%|██████▏   | 776/1261 [03:20<02:00,  4.04it/s]
 62%|██████▏   | 777/1261 [03:20<02:00,  4.02it/s]
 62%|██████▏   | 778/1261 [03:20<02:01,  3.98it/s]
 62%|██████▏   | 779/1261 [03:21<02:01,  3.97it/s]
 62%|██████▏   | 780/1261 [03:21<01:59,  4.01it/s]
 62%|██████▏   | 781/1261 [03:21<01:59,  4.03it/s]
 62%|██████▏   | 782/1261 [03:21<01:59,  4.02it/s]
 62%|██████▏   | 783/1261 [03:22<01:58,  4.02it/s]
 62%|██████▏   | 784/1261 [03:22<01:59,  3.99it/s]
 62%|██████▏   | 785/1261 [03:22<02:00,  3.96it/s]
 62%|██████▏   | 786/1261 [03:22<01:59,  3.97it/s]
 62%|██████▏   | 787/1261 [03:23<01:58,  3.99it/s]
 62%|██████▏   | 788/1261 [03:23<01:58,  3.99it/s]
 63%|██████▎   | 789/1261 [03:23<01:58,  3.99it/s]
 63%|██████▎   | 790/1261 [03:23<01:58,  3.98it/s]
 63%|██████▎   | 791/1261 [03:24<01:58,  3.97it/s]
 63%|██████▎   | 792/1261 [03:24<01:56,  4.02it/s]
 63%|██████▎   | 793/1261 [03:24<01:56,  4.01it/s]
 63%|██████▎   | 794/1261 [03:24<01:56,  4.01it/s]
 63%|██████▎   | 795/1261 [03:25<01:55,  4.04it/s]
 63%|██████▎   | 796/1261 [03:25<01:54,  4.06it/s]
 63%|██████▎   | 797/1261 [03:25<01:54,  4.06it/s]
 63%|██████▎   | 798/1261 [03:25<01:54,  4.05it/s]
 63%|██████▎   | 799/1261 [03:26<01:54,  4.04it/s]
 63%|██████▎   | 800/1261 [03:26<01:55,  3.99it/s]
 64%|██████▎   | 801/1261 [03:26<01:54,  4.03it/s]
 64%|██████▎   | 802/1261 [03:26<01:54,  4.02it/s]
 64%|██████▎   | 803/1261 [03:27<01:55,  3.98it/s]
 64%|██████▍   | 804/1261 [03:27<01:56,  3.92it/s]
 64%|██████▍   | 805/1261 [03:27<01:56,  3.92it/s]
 64%|██████▍   | 806/1261 [03:27<01:56,  3.91it/s]
 64%|██████▍   | 807/1261 [03:28<01:57,  3.86it/s]
 64%|██████▍   | 808/1261 [03:28<01:57,  3.84it/s]
 64%|██████▍   | 809/1261 [03:28<01:58,  3.83it/s]
 64%|██████▍   | 810/1261 [03:28<01:57,  3.83it/s]
 64%|██████▍   | 811/1261 [03:29<01:58,  3.80it/s]
 64%|██████▍   | 812/1261 [03:29<02:01,  3.70it/s]
 64%|██████▍   | 813/1261 [03:29<01:57,  3.80it/s]
 65%|██████▍   | 814/1261 [03:30<01:56,  3.83it/s]
 65%|██████▍   | 815/1261 [03:30<01:59,  3.73it/s]
 65%|██████▍   | 816/1261 [03:30<02:11,  3.38it/s]
 65%|██████▍   | 817/1261 [03:30<02:11,  3.38it/s]
 65%|██████▍   | 818/1261 [03:31<02:06,  3.49it/s]
 65%|██████▍   | 819/1261 [03:31<02:10,  3.38it/s]
 65%|██████▌   | 820/1261 [03:31<02:05,  3.52it/s]
 65%|██████▌   | 821/1261 [03:32<02:01,  3.62it/s]
 65%|██████▌   | 822/1261 [03:32<01:58,  3.69it/s]
 65%|██████▌   | 823/1261 [03:32<01:57,  3.72it/s]
 65%|██████▌   | 824/1261 [03:32<01:55,  3.79it/s]
 65%|██████▌   | 825/1261 [03:33<01:55,  3.76it/s]
 66%|██████▌   | 826/1261 [03:33<01:55,  3.78it/s]
 66%|██████▌   | 827/1261 [03:33<01:53,  3.83it/s]
 66%|██████▌   | 828/1261 [03:33<01:52,  3.85it/s]
 66%|██████▌   | 829/1261 [03:34<01:52,  3.86it/s]
 66%|██████▌   | 830/1261 [03:34<01:51,  3.87it/s]
 66%|██████▌   | 831/1261 [03:34<01:50,  3.90it/s]
 66%|██████▌   | 832/1261 [03:34<01:49,  3.92it/s]
 66%|██████▌   | 833/1261 [03:35<01:48,  3.94it/s]
 66%|██████▌   | 834/1261 [03:35<01:49,  3.91it/s]
 66%|██████▌   | 835/1261 [03:35<01:49,  3.88it/s]
 66%|██████▋   | 836/1261 [03:35<01:53,  3.73it/s]
 66%|██████▋   | 837/1261 [03:36<01:54,  3.69it/s]
 66%|██████▋   | 838/1261 [03:36<01:52,  3.75it/s]
 67%|██████▋   | 839/1261 [03:36<01:51,  3.79it/s]
 67%|██████▋   | 840/1261 [03:37<01:52,  3.74it/s]
 67%|██████▋   | 841/1261 [03:37<01:53,  3.69it/s]
 67%|██████▋   | 842/1261 [03:37<01:52,  3.73it/s]
 67%|██████▋   | 843/1261 [03:37<01:50,  3.78it/s]
 67%|██████▋   | 844/1261 [03:38<01:49,  3.82it/s]
 67%|██████▋   | 845/1261 [03:38<01:48,  3.84it/s]
 67%|██████▋   | 846/1261 [03:38<01:47,  3.87it/s]
 67%|██████▋   | 847/1261 [03:38<01:44,  3.96it/s]
 67%|██████▋   | 848/1261 [03:39<01:43,  3.99it/s]
 67%|██████▋   | 849/1261 [03:39<01:43,  3.97it/s]
 67%|██████▋   | 850/1261 [03:39<01:43,  3.95it/s]
 67%|██████▋   | 851/1261 [03:39<01:44,  3.91it/s]
 68%|██████▊   | 852/1261 [03:40<01:44,  3.91it/s]
 68%|██████▊   | 853/1261 [03:40<01:42,  3.96it/s]
 68%|██████▊   | 854/1261 [03:40<01:44,  3.90it/s]
 68%|██████▊   | 855/1261 [03:40<01:45,  3.85it/s]
 68%|██████▊   | 856/1261 [03:41<01:45,  3.85it/s]
 68%|██████▊   | 857/1261 [03:41<01:46,  3.78it/s]
 68%|██████▊   | 858/1261 [03:41<01:46,  3.78it/s]
 68%|██████▊   | 859/1261 [03:41<01:45,  3.83it/s]
 68%|██████▊   | 860/1261 [03:42<01:46,  3.77it/s]
 68%|██████▊   | 861/1261 [03:42<01:45,  3.79it/s]
 68%|██████▊   | 862/1261 [03:42<01:42,  3.88it/s]
 68%|██████▊   | 863/1261 [03:42<01:41,  3.92it/s]
 69%|██████▊   | 864/1261 [03:43<01:39,  3.98it/s]
 69%|██████▊   | 865/1261 [03:43<01:37,  4.04it/s]
 69%|██████▊   | 866/1261 [03:43<01:40,  3.94it/s]
 69%|██████▉   | 867/1261 [03:43<01:39,  3.95it/s]
 69%|██████▉   | 868/1261 [03:44<01:41,  3.89it/s]
 69%|██████▉   | 869/1261 [03:44<01:40,  3.91it/s]
 69%|██████▉   | 870/1261 [03:44<01:45,  3.71it/s]
 69%|██████▉   | 871/1261 [03:45<01:46,  3.65it/s]
 69%|██████▉   | 872/1261 [03:45<01:45,  3.69it/s]
 69%|██████▉   | 873/1261 [03:45<01:41,  3.83it/s]
 69%|██████▉   | 874/1261 [03:45<01:39,  3.90it/s]
 69%|██████▉   | 875/1261 [03:46<01:37,  3.96it/s]
 69%|██████▉   | 876/1261 [03:46<01:35,  4.04it/s]
 70%|██████▉   | 877/1261 [03:46<01:35,  4.04it/s]
 70%|██████▉   | 878/1261 [03:46<01:36,  3.98it/s]
 70%|██████▉   | 879/1261 [03:47<01:37,  3.91it/s]
 70%|██████▉   | 880/1261 [03:47<01:36,  3.93it/s]
 70%|██████▉   | 881/1261 [03:47<01:35,  3.97it/s]
 70%|██████▉   | 882/1261 [03:47<01:34,  4.03it/s]
 70%|███████   | 883/1261 [03:48<01:32,  4.08it/s]
 70%|███████   | 884/1261 [03:48<01:31,  4.11it/s]
 70%|███████   | 885/1261 [03:48<01:30,  4.14it/s]
 70%|███████   | 886/1261 [03:48<01:30,  4.13it/s]
 70%|███████   | 887/1261 [03:49<01:30,  4.13it/s]
 70%|███████   | 888/1261 [03:49<01:30,  4.13it/s]
 70%|███████   | 889/1261 [03:49<01:30,  4.12it/s]
 71%|███████   | 890/1261 [03:49<01:29,  4.15it/s]
 71%|███████   | 891/1261 [03:49<01:30,  4.10it/s]
 71%|███████   | 892/1261 [03:50<01:32,  3.99it/s]
 71%|███████   | 893/1261 [03:50<01:35,  3.83it/s]
 71%|███████   | 894/1261 [03:50<01:35,  3.85it/s]
 71%|███████   | 895/1261 [03:51<01:33,  3.93it/s]
 71%|███████   | 896/1261 [03:51<01:31,  3.99it/s]
 71%|███████   | 897/1261 [03:51<01:29,  4.05it/s]
 71%|███████   | 898/1261 [03:51<01:28,  4.09it/s]
 71%|███████▏  | 899/1261 [03:52<01:28,  4.07it/s]
 71%|███████▏  | 900/1261 [03:52<01:28,  4.10it/s]
 71%|███████▏  | 901/1261 [03:52<01:27,  4.13it/s]
 72%|███████▏  | 902/1261 [03:52<01:26,  4.17it/s]
 72%|███████▏  | 903/1261 [03:52<01:26,  4.14it/s]
 72%|███████▏  | 904/1261 [03:53<01:25,  4.16it/s]
 72%|███████▏  | 905/1261 [03:53<01:25,  4.15it/s]
 72%|███████▏  | 906/1261 [03:53<01:25,  4.16it/s]
 72%|███████▏  | 907/1261 [03:53<01:24,  4.17it/s]
 72%|███████▏  | 908/1261 [03:54<01:24,  4.20it/s]
 72%|███████▏  | 909/1261 [03:54<01:24,  4.17it/s]
 72%|███████▏  | 910/1261 [03:54<01:24,  4.13it/s]
 72%|███████▏  | 911/1261 [03:54<01:24,  4.13it/s]
 72%|███████▏  | 912/1261 [03:55<01:24,  4.15it/s]
 72%|███████▏  | 913/1261 [03:55<01:24,  4.12it/s]
 72%|███████▏  | 914/1261 [03:55<01:24,  4.12it/s]
 73%|███████▎  | 915/1261 [03:55<01:23,  4.13it/s]
 73%|███████▎  | 916/1261 [03:56<01:23,  4.16it/s]
 73%|███████▎  | 917/1261 [03:56<01:22,  4.17it/s]
 73%|███████▎  | 918/1261 [03:56<01:22,  4.15it/s]
 73%|███████▎  | 919/1261 [03:56<01:25,  3.99it/s]
 73%|███████▎  | 920/1261 [03:57<01:29,  3.81it/s]
 73%|███████▎  | 921/1261 [03:57<01:31,  3.73it/s]
 73%|███████▎  | 922/1261 [03:57<01:35,  3.56it/s]
 73%|███████▎  | 923/1261 [03:58<01:37,  3.48it/s]
 73%|███████▎  | 924/1261 [03:58<01:34,  3.58it/s]
 73%|███████▎  | 925/1261 [03:58<01:31,  3.67it/s]
 73%|███████▎  | 926/1261 [03:58<01:30,  3.70it/s]
 74%|███████▎  | 927/1261 [03:59<01:28,  3.79it/s]
 74%|███████▎  | 928/1261 [03:59<01:26,  3.85it/s]
 74%|███████▎  | 929/1261 [03:59<01:24,  3.95it/s]
 74%|███████▍  | 930/1261 [03:59<01:22,  4.00it/s]
 74%|███████▍  | 931/1261 [04:00<01:23,  3.97it/s]
 74%|███████▍  | 932/1261 [04:00<01:23,  3.93it/s]
 74%|███████▍  | 933/1261 [04:00<01:24,  3.89it/s]
 74%|███████▍  | 934/1261 [04:00<01:25,  3.83it/s]
 74%|███████▍  | 935/1261 [04:01<01:25,  3.81it/s]
 74%|███████▍  | 936/1261 [04:01<01:26,  3.76it/s]
 74%|███████▍  | 937/1261 [04:01<01:28,  3.67it/s]
 74%|███████▍  | 938/1261 [04:01<01:27,  3.70it/s]
 74%|███████▍  | 939/1261 [04:02<01:26,  3.71it/s]
 75%|███████▍  | 940/1261 [04:02<01:26,  3.72it/s]
 75%|███████▍  | 941/1261 [04:02<01:31,  3.49it/s]
 75%|███████▍  | 942/1261 [04:03<01:41,  3.13it/s]
 75%|███████▍  | 943/1261 [04:03<01:41,  3.14it/s]
 75%|███████▍  | 944/1261 [04:03<01:38,  3.21it/s]
 75%|███████▍  | 945/1261 [04:04<01:34,  3.35it/s]
 75%|███████▌  | 946/1261 [04:04<01:35,  3.28it/s]
 75%|███████▌  | 947/1261 [04:04<01:37,  3.23it/s]
 75%|███████▌  | 948/1261 [04:05<01:41,  3.09it/s]
 75%|███████▌  | 949/1261 [04:05<01:43,  3.02it/s]
 75%|███████▌  | 950/1261 [04:05<01:41,  3.07it/s]
 75%|███████▌  | 951/1261 [04:06<01:38,  3.15it/s]
 75%|███████▌  | 952/1261 [04:06<01:43,  3.00it/s]
 76%|███████▌  | 953/1261 [04:06<01:38,  3.13it/s]
 76%|███████▌  | 954/1261 [04:07<01:41,  3.01it/s]
 76%|███████▌  | 955/1261 [04:07<01:36,  3.16it/s]
 76%|███████▌  | 956/1261 [04:07<01:35,  3.20it/s]
 76%|███████▌  | 957/1261 [04:07<01:33,  3.25it/s]
 76%|███████▌  | 958/1261 [04:08<01:30,  3.34it/s]
 76%|███████▌  | 959/1261 [04:08<01:28,  3.41it/s]
 76%|███████▌  | 960/1261 [04:08<01:27,  3.46it/s]
 76%|███████▌  | 961/1261 [04:09<01:24,  3.54it/s]
 76%|███████▋  | 962/1261 [04:09<01:23,  3.57it/s]
 76%|███████▋  | 963/1261 [04:09<01:24,  3.54it/s]
 76%|███████▋  | 964/1261 [04:09<01:27,  3.40it/s]
 77%|███████▋  | 965/1261 [04:10<01:24,  3.52it/s]
 77%|███████▋  | 966/1261 [04:10<01:22,  3.59it/s]
 77%|███████▋  | 967/1261 [04:10<01:23,  3.54it/s]
 77%|███████▋  | 968/1261 [04:11<01:23,  3.53it/s]
 77%|███████▋  | 969/1261 [04:11<01:21,  3.57it/s]
 77%|███████▋  | 970/1261 [04:11<01:19,  3.65it/s]
 77%|███████▋  | 971/1261 [04:11<01:19,  3.63it/s]
 77%|███████▋  | 972/1261 [04:12<01:18,  3.67it/s]
 77%|███████▋  | 973/1261 [04:12<01:17,  3.70it/s]
 77%|███████▋  | 974/1261 [04:12<01:17,  3.70it/s]
 77%|███████▋  | 975/1261 [04:12<01:16,  3.73it/s]
 77%|███████▋  | 976/1261 [04:13<01:14,  3.83it/s]
 77%|███████▋  | 977/1261 [04:13<01:15,  3.77it/s]
 78%|███████▊  | 978/1261 [04:13<01:15,  3.77it/s]
 78%|███████▊  | 979/1261 [04:13<01:16,  3.68it/s]
 78%|███████▊  | 980/1261 [04:14<01:15,  3.71it/s]
 78%|███████▊  | 981/1261 [04:14<01:13,  3.80it/s]
 78%|███████▊  | 982/1261 [04:14<01:12,  3.82it/s]
 78%|███████▊  | 983/1261 [04:15<01:13,  3.80it/s]
 78%|███████▊  | 984/1261 [04:15<01:13,  3.78it/s]
 78%|███████▊  | 985/1261 [04:15<01:11,  3.87it/s]
 78%|███████▊  | 986/1261 [04:15<01:10,  3.88it/s]
 78%|███████▊  | 987/1261 [04:16<01:11,  3.83it/s]
 78%|███████▊  | 988/1261 [04:16<01:10,  3.90it/s]
 78%|███████▊  | 989/1261 [04:16<01:10,  3.86it/s]
 79%|███████▊  | 990/1261 [04:16<01:11,  3.80it/s]
 79%|███████▊  | 991/1261 [04:17<01:11,  3.76it/s]
 79%|███████▊  | 992/1261 [04:17<01:11,  3.78it/s]
 79%|███████▊  | 993/1261 [04:17<01:10,  3.79it/s]
 79%|███████▉  | 994/1261 [04:17<01:11,  3.72it/s]
 79%|███████▉  | 995/1261 [04:18<01:11,  3.71it/s]
 79%|███████▉  | 996/1261 [04:18<01:12,  3.68it/s]
 79%|███████▉  | 997/1261 [04:18<01:09,  3.79it/s]
 79%|███████▉  | 998/1261 [04:18<01:09,  3.81it/s]
 79%|███████▉  | 999/1261 [04:19<01:09,  3.77it/s]
 79%|███████▉  | 1000/1261 [04:19<01:09,  3.78it/s]
 79%|███████▉  | 1001/1261 [04:19<01:07,  3.86it/s]
 79%|███████▉  | 1002/1261 [04:20<01:08,  3.80it/s]
 80%|███████▉  | 1003/1261 [04:20<01:07,  3.81it/s]
 80%|███████▉  | 1004/1261 [04:20<01:07,  3.83it/s]
 80%|███████▉  | 1005/1261 [04:20<01:07,  3.80it/s]
 80%|███████▉  | 1006/1261 [04:21<01:07,  3.75it/s]
 80%|███████▉  | 1007/1261 [04:21<01:07,  3.74it/s]
 80%|███████▉  | 1008/1261 [04:21<01:07,  3.73it/s]
 80%|████████  | 1009/1261 [04:21<01:08,  3.67it/s]
 80%|████████  | 1010/1261 [04:22<01:07,  3.70it/s]
 80%|████████  | 1011/1261 [04:22<01:06,  3.75it/s]
 80%|████████  | 1012/1261 [04:22<01:04,  3.84it/s]
 80%|████████  | 1013/1261 [04:22<01:03,  3.89it/s]
 80%|████████  | 1014/1261 [04:23<01:02,  3.96it/s]
 80%|████████  | 1015/1261 [04:23<01:01,  4.01it/s]
 81%|████████  | 1016/1261 [04:23<01:00,  4.03it/s]
 81%|████████  | 1017/1261 [04:23<01:01,  3.98it/s]
 81%|████████  | 1018/1261 [04:24<01:02,  3.91it/s]
 81%|████████  | 1019/1261 [04:24<01:02,  3.85it/s]
 81%|████████  | 1020/1261 [04:24<01:01,  3.92it/s]
 81%|████████  | 1021/1261 [04:24<01:00,  3.98it/s]
 81%|████████  | 1022/1261 [04:25<00:58,  4.07it/s]
 81%|████████  | 1023/1261 [04:25<00:58,  4.09it/s]
 81%|████████  | 1024/1261 [04:25<00:57,  4.11it/s]
 81%|████████▏ | 1025/1261 [04:25<00:57,  4.13it/s]
 81%|████████▏ | 1026/1261 [04:26<00:56,  4.15it/s]
 81%|████████▏ | 1027/1261 [04:26<00:56,  4.14it/s]
 82%|████████▏ | 1028/1261 [04:26<00:56,  4.15it/s]
 82%|████████▏ | 1029/1261 [04:26<00:56,  4.11it/s]
 82%|████████▏ | 1030/1261 [04:27<00:56,  4.06it/s]
 82%|████████▏ | 1031/1261 [04:27<00:56,  4.10it/s]
 82%|████████▏ | 1032/1261 [04:27<00:56,  4.07it/s]
 82%|████████▏ | 1033/1261 [04:27<00:55,  4.08it/s]
 82%|████████▏ | 1034/1261 [04:28<00:55,  4.12it/s]
 82%|████████▏ | 1035/1261 [04:28<00:56,  4.03it/s]
 82%|████████▏ | 1036/1261 [04:28<00:57,  3.93it/s]
 82%|████████▏ | 1037/1261 [04:28<00:56,  3.97it/s]
 82%|████████▏ | 1038/1261 [04:29<00:57,  3.91it/s]
 82%|████████▏ | 1039/1261 [04:29<00:57,  3.89it/s]
 82%|████████▏ | 1040/1261 [04:29<00:56,  3.90it/s]
 83%|████████▎ | 1041/1261 [04:29<00:57,  3.85it/s]
 83%|████████▎ | 1042/1261 [04:30<00:57,  3.81it/s]
 83%|████████▎ | 1043/1261 [04:30<00:57,  3.81it/s]
 83%|████████▎ | 1044/1261 [04:30<00:56,  3.85it/s]
 83%|████████▎ | 1045/1261 [04:30<00:56,  3.85it/s]
 83%|████████▎ | 1046/1261 [04:31<00:54,  3.93it/s]
 83%|████████▎ | 1047/1261 [04:31<00:53,  4.01it/s]
 83%|████████▎ | 1048/1261 [04:31<00:53,  3.96it/s]
 83%|████████▎ | 1049/1261 [04:31<00:52,  4.01it/s]
 83%|████████▎ | 1050/1261 [04:32<00:52,  4.04it/s]
 83%|████████▎ | 1051/1261 [04:32<00:51,  4.10it/s]
 83%|████████▎ | 1052/1261 [04:32<00:51,  4.06it/s]
 84%|████████▎ | 1053/1261 [04:32<00:50,  4.08it/s]
 84%|████████▎ | 1054/1261 [04:33<00:50,  4.07it/s]
 84%|████████▎ | 1055/1261 [04:33<00:51,  4.03it/s]
 84%|████████▎ | 1056/1261 [04:33<00:51,  4.00it/s]
 84%|████████▍ | 1057/1261 [04:33<00:51,  3.98it/s]
 84%|████████▍ | 1058/1261 [04:34<00:50,  4.03it/s]
 84%|████████▍ | 1059/1261 [04:34<00:50,  4.01it/s]
 84%|████████▍ | 1060/1261 [04:34<00:50,  4.01it/s]
 84%|████████▍ | 1061/1261 [04:34<00:50,  3.98it/s]
 84%|████████▍ | 1062/1261 [04:35<00:49,  4.03it/s]
 84%|████████▍ | 1063/1261 [04:35<00:48,  4.06it/s]
 84%|████████▍ | 1064/1261 [04:35<00:48,  4.10it/s]
 84%|████████▍ | 1065/1261 [04:35<00:47,  4.11it/s]
 85%|████████▍ | 1066/1261 [04:36<00:47,  4.13it/s]
 85%|████████▍ | 1067/1261 [04:36<00:48,  4.04it/s]
 85%|████████▍ | 1068/1261 [04:36<00:48,  4.01it/s]
 85%|████████▍ | 1069/1261 [04:36<00:49,  3.88it/s]
 85%|████████▍ | 1070/1261 [04:37<00:49,  3.88it/s]
 85%|████████▍ | 1071/1261 [04:37<00:49,  3.83it/s]
 85%|████████▌ | 1072/1261 [04:37<00:49,  3.79it/s]
 85%|████████▌ | 1073/1261 [04:37<00:49,  3.77it/s]
 85%|████████▌ | 1074/1261 [04:38<00:49,  3.78it/s]
 85%|████████▌ | 1075/1261 [04:38<00:48,  3.80it/s]
 85%|████████▌ | 1076/1261 [04:38<00:48,  3.81it/s]
 85%|████████▌ | 1077/1261 [04:38<00:47,  3.87it/s]
 85%|████████▌ | 1078/1261 [04:39<00:47,  3.87it/s]
 86%|████████▌ | 1079/1261 [04:39<00:46,  3.89it/s]
 86%|████████▌ | 1080/1261 [04:39<00:47,  3.81it/s]
 86%|████████▌ | 1081/1261 [04:40<00:47,  3.78it/s]
 86%|████████▌ | 1082/1261 [04:40<00:46,  3.84it/s]
 86%|████████▌ | 1083/1261 [04:40<00:46,  3.84it/s]
 86%|████████▌ | 1084/1261 [04:40<00:45,  3.89it/s]
 86%|████████▌ | 1085/1261 [04:41<00:44,  3.98it/s]
 86%|████████▌ | 1086/1261 [04:41<00:43,  4.01it/s]
 86%|████████▌ | 1087/1261 [04:41<00:44,  3.93it/s]
 86%|████████▋ | 1088/1261 [04:41<00:44,  3.90it/s]
 86%|████████▋ | 1089/1261 [04:42<00:44,  3.85it/s]
 86%|████████▋ | 1090/1261 [04:42<00:45,  3.79it/s]
 87%|████████▋ | 1091/1261 [04:42<00:45,  3.77it/s]
 87%|████████▋ | 1092/1261 [04:42<00:44,  3.79it/s]
 87%|████████▋ | 1093/1261 [04:43<00:43,  3.82it/s]
 87%|████████▋ | 1094/1261 [04:43<00:43,  3.81it/s]
 87%|████████▋ | 1095/1261 [04:43<00:43,  3.80it/s]
 87%|████████▋ | 1096/1261 [04:43<00:43,  3.80it/s]
 87%|████████▋ | 1097/1261 [04:44<00:42,  3.83it/s]
 87%|████████▋ | 1098/1261 [04:44<00:42,  3.82it/s]
 87%|████████▋ | 1099/1261 [04:44<00:43,  3.76it/s]
 87%|████████▋ | 1100/1261 [04:44<00:42,  3.80it/s]
 87%|████████▋ | 1101/1261 [04:45<00:41,  3.82it/s]
 87%|████████▋ | 1102/1261 [04:45<00:41,  3.83it/s]
 87%|████████▋ | 1103/1261 [04:45<00:41,  3.82it/s]
 88%|████████▊ | 1104/1261 [04:46<00:41,  3.78it/s]
 88%|████████▊ | 1105/1261 [04:46<00:41,  3.77it/s]
 88%|████████▊ | 1106/1261 [04:46<00:41,  3.70it/s]
 88%|████████▊ | 1107/1261 [04:46<00:41,  3.67it/s]
 88%|████████▊ | 1108/1261 [04:47<00:42,  3.64it/s]
 88%|████████▊ | 1109/1261 [04:47<00:41,  3.68it/s]
 88%|████████▊ | 1110/1261 [04:47<00:40,  3.74it/s]
 88%|████████▊ | 1111/1261 [04:47<00:39,  3.81it/s]
 88%|████████▊ | 1112/1261 [04:48<00:39,  3.78it/s]
 88%|████████▊ | 1113/1261 [04:48<00:38,  3.89it/s]
 88%|████████▊ | 1114/1261 [04:48<00:36,  3.99it/s]
 88%|████████▊ | 1115/1261 [04:48<00:36,  4.03it/s]
 89%|████████▊ | 1116/1261 [04:49<00:35,  4.06it/s]
 89%|████████▊ | 1117/1261 [04:49<00:35,  4.10it/s]
 89%|████████▊ | 1118/1261 [04:49<00:34,  4.13it/s]
 89%|████████▊ | 1119/1261 [04:49<00:34,  4.13it/s]
 89%|████████▉ | 1120/1261 [04:50<00:34,  4.12it/s]
 89%|████████▉ | 1121/1261 [04:50<00:33,  4.13it/s]
 89%|████████▉ | 1122/1261 [04:50<00:33,  4.15it/s]
 89%|████████▉ | 1123/1261 [04:50<00:33,  4.12it/s]
 89%|████████▉ | 1124/1261 [04:51<00:33,  4.13it/s]
 89%|████████▉ | 1125/1261 [04:51<00:33,  4.09it/s]
 89%|████████▉ | 1126/1261 [04:51<00:32,  4.14it/s]
 89%|████████▉ | 1127/1261 [04:51<00:32,  4.14it/s]
 89%|████████▉ | 1128/1261 [04:52<00:32,  4.14it/s]
 90%|████████▉ | 1129/1261 [04:52<00:32,  4.02it/s]
 90%|████████▉ | 1130/1261 [04:52<00:32,  4.02it/s]
 90%|████████▉ | 1131/1261 [04:52<00:32,  4.03it/s]
 90%|████████▉ | 1132/1261 [04:53<00:32,  4.00it/s]
 90%|████████▉ | 1133/1261 [04:53<00:33,  3.87it/s]
 90%|████████▉ | 1134/1261 [04:53<00:33,  3.83it/s]
 90%|█████████ | 1135/1261 [04:53<00:32,  3.83it/s]
 90%|█████████ | 1136/1261 [04:54<00:32,  3.83it/s]
 90%|█████████ | 1137/1261 [04:54<00:32,  3.77it/s]
 90%|█████████ | 1138/1261 [04:54<00:32,  3.77it/s]
 90%|█████████ | 1139/1261 [04:54<00:32,  3.76it/s]
 90%|█████████ | 1140/1261 [04:55<00:31,  3.80it/s]
 90%|█████████ | 1141/1261 [04:55<00:31,  3.82it/s]
 91%|█████████ | 1142/1261 [04:55<00:31,  3.77it/s]
 91%|█████████ | 1143/1261 [04:56<00:31,  3.70it/s]
 91%|█████████ | 1144/1261 [04:56<00:30,  3.77it/s]
 91%|█████████ | 1145/1261 [04:56<00:30,  3.81it/s]
 91%|█████████ | 1146/1261 [04:56<00:29,  3.84it/s]
 91%|█████████ | 1147/1261 [04:57<00:29,  3.90it/s]
 91%|█████████ | 1148/1261 [04:57<00:28,  3.93it/s]
 91%|█████████ | 1149/1261 [04:57<00:28,  3.92it/s]
 91%|█████████ | 1150/1261 [04:57<00:27,  3.98it/s]
 91%|█████████▏| 1151/1261 [04:58<00:28,  3.93it/s]
 91%|█████████▏| 1152/1261 [04:58<00:28,  3.88it/s]
 91%|█████████▏| 1153/1261 [04:58<00:27,  3.98it/s]
 92%|█████████▏| 1154/1261 [04:58<00:26,  4.04it/s]
 92%|█████████▏| 1155/1261 [04:59<00:26,  4.04it/s]
 92%|█████████▏| 1156/1261 [04:59<00:26,  4.03it/s]
 92%|█████████▏| 1157/1261 [04:59<00:26,  3.92it/s]
 92%|█████████▏| 1158/1261 [04:59<00:26,  3.91it/s]
 92%|█████████▏| 1159/1261 [05:00<00:26,  3.86it/s]
 92%|█████████▏| 1160/1261 [05:00<00:26,  3.83it/s]
 92%|█████████▏| 1161/1261 [05:00<00:26,  3.83it/s]
 92%|█████████▏| 1162/1261 [05:00<00:25,  3.87it/s]
 92%|█████████▏| 1163/1261 [05:01<00:25,  3.83it/s]
 92%|█████████▏| 1164/1261 [05:01<00:25,  3.85it/s]
 92%|█████████▏| 1165/1261 [05:01<00:24,  3.86it/s]
 92%|█████████▏| 1166/1261 [05:01<00:24,  3.86it/s]
 93%|█████████▎| 1167/1261 [05:02<00:24,  3.82it/s]
 93%|█████████▎| 1168/1261 [05:02<00:24,  3.82it/s]
 93%|█████████▎| 1169/1261 [05:02<00:23,  3.84it/s]
 93%|█████████▎| 1170/1261 [05:02<00:23,  3.81it/s]
 93%|█████████▎| 1171/1261 [05:03<00:23,  3.82it/s]
 93%|█████████▎| 1172/1261 [05:03<00:24,  3.64it/s]
 93%|█████████▎| 1173/1261 [05:03<00:23,  3.72it/s]
 93%|█████████▎| 1174/1261 [05:04<00:22,  3.79it/s]
 93%|█████████▎| 1175/1261 [05:04<00:22,  3.80it/s]
 93%|█████████▎| 1176/1261 [05:04<00:22,  3.81it/s]
 93%|█████████▎| 1177/1261 [05:04<00:22,  3.69it/s]
 93%|█████████▎| 1178/1261 [05:05<00:22,  3.70it/s]
 93%|█████████▎| 1179/1261 [05:05<00:22,  3.69it/s]
 94%|█████████▎| 1180/1261 [05:05<00:22,  3.57it/s]
 94%|█████████▎| 1181/1261 [05:05<00:23,  3.45it/s]
 94%|█████████▎| 1182/1261 [05:06<00:22,  3.51it/s]
 94%|█████████▍| 1183/1261 [05:06<00:21,  3.57it/s]
 94%|█████████▍| 1184/1261 [05:06<00:21,  3.64it/s]
 94%|█████████▍| 1185/1261 [05:07<00:20,  3.70it/s]
 94%|█████████▍| 1186/1261 [05:07<00:20,  3.74it/s]
 94%|█████████▍| 1187/1261 [05:07<00:19,  3.78it/s]
 94%|█████████▍| 1188/1261 [05:07<00:19,  3.80it/s]
 94%|█████████▍| 1189/1261 [05:08<00:18,  3.85it/s]
 94%|█████████▍| 1190/1261 [05:08<00:18,  3.87it/s]
 94%|█████████▍| 1191/1261 [05:08<00:18,  3.85it/s]
 95%|█████████▍| 1192/1261 [05:08<00:18,  3.81it/s]
 95%|█████████▍| 1193/1261 [05:09<00:17,  3.81it/s]
 95%|█████████▍| 1194/1261 [05:09<00:17,  3.81it/s]
 95%|█████████▍| 1195/1261 [05:09<00:17,  3.81it/s]
 95%|█████████▍| 1196/1261 [05:09<00:16,  3.91it/s]
 95%|█████████▍| 1197/1261 [05:10<00:16,  3.97it/s]
 95%|█████████▌| 1198/1261 [05:10<00:15,  4.05it/s]
 95%|█████████▌| 1199/1261 [05:10<00:15,  4.11it/s]
 95%|█████████▌| 1200/1261 [05:10<00:14,  4.12it/s]
 95%|█████████▌| 1201/1261 [05:11<00:14,  4.14it/s]
 95%|█████████▌| 1202/1261 [05:11<00:14,  4.17it/s]
 95%|█████████▌| 1203/1261 [05:11<00:13,  4.22it/s]
 95%|█████████▌| 1204/1261 [05:11<00:13,  4.20it/s]
 96%|█████████▌| 1205/1261 [05:12<00:13,  4.08it/s]
 96%|█████████▌| 1206/1261 [05:12<00:13,  3.99it/s]
 96%|█████████▌| 1207/1261 [05:12<00:13,  3.92it/s]
 96%|█████████▌| 1208/1261 [05:12<00:13,  3.91it/s]
 96%|█████████▌| 1209/1261 [05:13<00:13,  3.90it/s]
 96%|█████████▌| 1210/1261 [05:13<00:13,  3.91it/s]
 96%|█████████▌| 1211/1261 [05:13<00:12,  3.86it/s]
 96%|█████████▌| 1212/1261 [05:13<00:12,  3.90it/s]
 96%|█████████▌| 1213/1261 [05:14<00:12,  3.91it/s]
 96%|█████████▋| 1214/1261 [05:14<00:12,  3.87it/s]
 96%|█████████▋| 1215/1261 [05:14<00:11,  3.84it/s]
 96%|█████████▋| 1216/1261 [05:14<00:11,  3.87it/s]
 97%|█████████▋| 1217/1261 [05:15<00:11,  3.87it/s]
 97%|█████████▋| 1218/1261 [05:15<00:11,  3.84it/s]
 97%|█████████▋| 1219/1261 [05:15<00:10,  3.85it/s]
 97%|█████████▋| 1220/1261 [05:15<00:10,  3.77it/s]
 97%|█████████▋| 1221/1261 [05:16<00:10,  3.76it/s]
 97%|█████████▋| 1222/1261 [05:16<00:10,  3.83it/s]
 97%|█████████▋| 1223/1261 [05:16<00:09,  3.87it/s]
 97%|█████████▋| 1224/1261 [05:17<00:09,  3.83it/s]
 97%|█████████▋| 1225/1261 [05:17<00:09,  3.87it/s]
 97%|█████████▋| 1226/1261 [05:17<00:09,  3.88it/s]
 97%|█████████▋| 1227/1261 [05:17<00:08,  3.88it/s]
 97%|█████████▋| 1228/1261 [05:18<00:08,  3.97it/s]
 97%|█████████▋| 1229/1261 [05:18<00:08,  3.99it/s]
 98%|█████████▊| 1230/1261 [05:18<00:07,  3.99it/s]
 98%|█████████▊| 1231/1261 [05:18<00:07,  3.95it/s]
 98%|█████████▊| 1232/1261 [05:19<00:07,  3.91it/s]
 98%|█████████▊| 1233/1261 [05:19<00:07,  3.86it/s]
 98%|█████████▊| 1234/1261 [05:19<00:07,  3.79it/s]
 98%|█████████▊| 1235/1261 [05:19<00:06,  3.81it/s]
 98%|█████████▊| 1236/1261 [05:20<00:06,  3.84it/s]
 98%|█████████▊| 1237/1261 [05:20<00:06,  3.80it/s]
 98%|█████████▊| 1238/1261 [05:20<00:06,  3.78it/s]
 98%|█████████▊| 1239/1261 [05:20<00:05,  3.74it/s]
 98%|█████████▊| 1240/1261 [05:21<00:05,  3.80it/s]
 98%|█████████▊| 1241/1261 [05:21<00:05,  3.75it/s]
 98%|█████████▊| 1242/1261 [05:21<00:05,  3.78it/s]
 99%|█████████▊| 1243/1261 [05:21<00:04,  3.79it/s]
 99%|█████████▊| 1244/1261 [05:22<00:04,  3.84it/s]
 99%|█████████▊| 1245/1261 [05:22<00:04,  3.83it/s]
 99%|█████████▉| 1246/1261 [05:22<00:03,  3.82it/s]
 99%|█████████▉| 1247/1261 [05:22<00:03,  3.80it/s]
 99%|█████████▉| 1248/1261 [05:23<00:03,  3.78it/s]
 99%|█████████▉| 1249/1261 [05:23<00:03,  3.82it/s]
 99%|█████████▉| 1250/1261 [05:23<00:02,  3.84it/s]
 99%|█████████▉| 1251/1261 [05:24<00:02,  3.83it/s]
 99%|█████████▉| 1252/1261 [05:24<00:02,  3.86it/s]
 99%|█████████▉| 1253/1261 [05:24<00:02,  3.95it/s]
 99%|█████████▉| 1254/1261 [05:24<00:01,  3.91it/s]
100%|█████████▉| 1255/1261 [05:25<00:01,  3.86it/s]
100%|█████████▉| 1256/1261 [05:25<00:01,  3.83it/s]
100%|█████████▉| 1257/1261 [05:25<00:01,  3.82it/s]
100%|█████████▉| 1258/1261 [05:25<00:00,  3.86it/s]
100%|█████████▉| 1259/1261 [05:26<00:00,  3.92it/s]
100%|█████████▉| 1260/1261 [05:26<00:00,  3.95it/s]
[MoviePy] Done.
[MoviePy] >>>> Video ready: project_video_out_with_detection_bluecolor_22.mp4 

CPU times: user 4min 55s, sys: 46.3 s, total: 5min 41s
Wall time: 5min 27s
In [167]:
detected = Vehicle_Detect()
detected.boundingbox = 22

test_out_file = 'challenge_video_out_with_detection_bluecolor_22.mp4'
clip_test = VideoFileClip('challenge_video.mp4')
clip_test_out = clip_test.fl_image(pipeline_process_update)
%time clip_test_out.write_videofile(test_out_file, audio=False)
[MoviePy] >>>> Building video challenge_video_out_with_detection_bluecolor_22.mp4
[MoviePy] Writing video challenge_video_out_with_detection_bluecolor_22.mp4
  0%|          | 0/485 [00:00<?, ?it/s]
  0%|          | 1/485 [00:00<02:05,  3.85it/s]
  0%|          | 2/485 [00:00<02:04,  3.87it/s]
  1%|          | 3/485 [00:00<02:04,  3.88it/s]
  1%|          | 4/485 [00:01<02:02,  3.91it/s]
  1%|          | 5/485 [00:01<02:00,  3.98it/s]
  1%|          | 6/485 [00:01<01:59,  4.01it/s]
  1%|▏         | 7/485 [00:01<01:58,  4.02it/s]
  2%|▏         | 8/485 [00:02<01:58,  4.02it/s]
  2%|▏         | 9/485 [00:02<01:58,  4.02it/s]
  2%|▏         | 10/485 [00:02<01:58,  4.01it/s]
  2%|▏         | 11/485 [00:02<01:57,  4.04it/s]
  2%|▏         | 12/485 [00:03<01:57,  4.01it/s]
  3%|▎         | 13/485 [00:03<01:58,  3.99it/s]
  3%|▎         | 14/485 [00:03<01:57,  4.00it/s]
  3%|▎         | 15/485 [00:03<01:57,  3.99it/s]
  3%|▎         | 16/485 [00:04<01:57,  3.98it/s]
  4%|▎         | 17/485 [00:04<01:59,  3.92it/s]
  4%|▎         | 18/485 [00:04<01:58,  3.95it/s]
  4%|▍         | 19/485 [00:04<01:58,  3.94it/s]
  4%|▍         | 20/485 [00:05<01:55,  4.03it/s]
  4%|▍         | 21/485 [00:05<01:57,  3.96it/s]
  5%|▍         | 22/485 [00:05<01:57,  3.93it/s]
  5%|▍         | 23/485 [00:05<01:57,  3.92it/s]
  5%|▍         | 24/485 [00:06<01:58,  3.88it/s]
  5%|▌         | 25/485 [00:06<01:58,  3.89it/s]
  5%|▌         | 26/485 [00:06<01:58,  3.87it/s]
  6%|▌         | 27/485 [00:06<01:58,  3.88it/s]
  6%|▌         | 28/485 [00:07<01:56,  3.92it/s]
  6%|▌         | 29/485 [00:07<01:56,  3.93it/s]
  6%|▌         | 30/485 [00:07<01:55,  3.94it/s]
  6%|▋         | 31/485 [00:07<01:54,  3.96it/s]
  7%|▋         | 32/485 [00:08<01:54,  3.95it/s]
  7%|▋         | 33/485 [00:08<01:54,  3.95it/s]
  7%|▋         | 34/485 [00:08<01:52,  4.00it/s]
  7%|▋         | 35/485 [00:08<01:51,  4.04it/s]
  7%|▋         | 36/485 [00:09<01:51,  4.03it/s]
  8%|▊         | 37/485 [00:09<01:49,  4.09it/s]
  8%|▊         | 38/485 [00:09<01:50,  4.04it/s]
  8%|▊         | 39/485 [00:09<01:51,  4.02it/s]
  8%|▊         | 40/485 [00:10<01:50,  4.02it/s]
  8%|▊         | 41/485 [00:10<01:50,  4.01it/s]
  9%|▊         | 42/485 [00:10<01:52,  3.95it/s]
  9%|▉         | 43/485 [00:10<01:51,  3.95it/s]
  9%|▉         | 44/485 [00:11<01:51,  3.96it/s]
  9%|▉         | 45/485 [00:11<01:50,  4.00it/s]
  9%|▉         | 46/485 [00:11<01:47,  4.08it/s]
 10%|▉         | 47/485 [00:11<01:48,  4.05it/s]
 10%|▉         | 48/485 [00:12<01:48,  4.02it/s]
 10%|█         | 49/485 [00:12<01:48,  4.02it/s]
 10%|█         | 50/485 [00:12<01:48,  4.01it/s]
 11%|█         | 51/485 [00:12<01:47,  4.05it/s]
 11%|█         | 52/485 [00:13<01:45,  4.11it/s]
 11%|█         | 53/485 [00:13<01:44,  4.15it/s]
 11%|█         | 54/485 [00:13<01:43,  4.18it/s]
 11%|█▏        | 55/485 [00:13<01:42,  4.18it/s]
 12%|█▏        | 56/485 [00:14<01:44,  4.10it/s]
 12%|█▏        | 57/485 [00:14<01:44,  4.09it/s]
 12%|█▏        | 58/485 [00:14<01:46,  4.02it/s]
 12%|█▏        | 59/485 [00:14<01:44,  4.07it/s]
 12%|█▏        | 60/485 [00:14<01:44,  4.07it/s]
 13%|█▎        | 61/485 [00:15<01:42,  4.13it/s]
 13%|█▎        | 62/485 [00:15<01:43,  4.07it/s]
 13%|█▎        | 63/485 [00:15<01:44,  4.03it/s]
 13%|█▎        | 64/485 [00:15<01:44,  4.02it/s]
 13%|█▎        | 65/485 [00:16<01:44,  4.03it/s]
 14%|█▎        | 66/485 [00:16<01:41,  4.14it/s]
 14%|█▍        | 67/485 [00:16<01:40,  4.17it/s]
 14%|█▍        | 68/485 [00:16<01:39,  4.20it/s]
 14%|█▍        | 69/485 [00:17<01:37,  4.26it/s]
 14%|█▍        | 70/485 [00:17<01:37,  4.27it/s]
 15%|█▍        | 71/485 [00:17<01:39,  4.17it/s]
 15%|█▍        | 72/485 [00:17<01:40,  4.10it/s]
 15%|█▌        | 73/485 [00:18<01:40,  4.10it/s]
 15%|█▌        | 74/485 [00:18<01:40,  4.08it/s]
 15%|█▌        | 75/485 [00:18<01:41,  4.03it/s]
 16%|█▌        | 76/485 [00:18<01:41,  4.02it/s]
 16%|█▌        | 77/485 [00:19<01:42,  3.99it/s]
 16%|█▌        | 78/485 [00:19<01:42,  3.97it/s]
 16%|█▋        | 79/485 [00:19<01:40,  4.06it/s]
 16%|█▋        | 80/485 [00:19<01:39,  4.08it/s]
 17%|█▋        | 81/485 [00:20<01:37,  4.14it/s]
 17%|█▋        | 82/485 [00:20<01:35,  4.22it/s]
 17%|█▋        | 83/485 [00:20<01:36,  4.15it/s]
 17%|█▋        | 84/485 [00:20<01:37,  4.11it/s]
 18%|█▊        | 85/485 [00:21<01:35,  4.19it/s]
 18%|█▊        | 86/485 [00:21<01:34,  4.20it/s]
 18%|█▊        | 87/485 [00:21<01:34,  4.23it/s]
 18%|█▊        | 88/485 [00:21<01:34,  4.21it/s]
 18%|█▊        | 89/485 [00:22<01:35,  4.16it/s]
 19%|█▊        | 90/485 [00:22<01:36,  4.11it/s]
 19%|█▉        | 91/485 [00:22<01:37,  4.06it/s]
 19%|█▉        | 92/485 [00:22<01:34,  4.17it/s]
 19%|█▉        | 93/485 [00:23<01:35,  4.08it/s]
 19%|█▉        | 94/485 [00:23<01:35,  4.08it/s]
 20%|█▉        | 95/485 [00:23<01:35,  4.10it/s]
 20%|█▉        | 96/485 [00:23<01:35,  4.07it/s]
 20%|██        | 97/485 [00:23<01:35,  4.05it/s]
 20%|██        | 98/485 [00:24<01:35,  4.04it/s]
 20%|██        | 99/485 [00:24<01:34,  4.10it/s]
 21%|██        | 100/485 [00:24<01:32,  4.14it/s]
 21%|██        | 101/485 [00:24<01:32,  4.16it/s]
 21%|██        | 102/485 [00:25<01:30,  4.24it/s]
 21%|██        | 103/485 [00:25<01:28,  4.30it/s]
 21%|██▏       | 104/485 [00:25<01:31,  4.17it/s]
 22%|██▏       | 105/485 [00:25<01:32,  4.09it/s]
 22%|██▏       | 106/485 [00:26<01:33,  4.06it/s]
 22%|██▏       | 107/485 [00:26<01:33,  4.04it/s]
 22%|██▏       | 108/485 [00:26<01:33,  4.05it/s]
 22%|██▏       | 109/485 [00:26<01:32,  4.08it/s]
 23%|██▎       | 110/485 [00:27<01:32,  4.04it/s]
 23%|██▎       | 111/485 [00:27<01:33,  4.02it/s]
 23%|██▎       | 112/485 [00:27<01:33,  3.98it/s]
 23%|██▎       | 113/485 [00:27<01:33,  3.99it/s]
 24%|██▎       | 114/485 [00:28<01:31,  4.07it/s]
 24%|██▎       | 115/485 [00:28<01:29,  4.14it/s]
 24%|██▍       | 116/485 [00:28<01:30,  4.09it/s]
 24%|██▍       | 117/485 [00:28<01:31,  4.04it/s]
 24%|██▍       | 118/485 [00:29<01:31,  4.01it/s]
 25%|██▍       | 119/485 [00:29<01:30,  4.06it/s]
 25%|██▍       | 120/485 [00:29<01:30,  4.05it/s]
 25%|██▍       | 121/485 [00:29<01:28,  4.10it/s]
 25%|██▌       | 122/485 [00:30<01:27,  4.14it/s]
 25%|██▌       | 123/485 [00:30<01:26,  4.20it/s]
 26%|██▌       | 124/485 [00:30<01:27,  4.14it/s]
 26%|██▌       | 125/485 [00:30<01:28,  4.07it/s]
 26%|██▌       | 126/485 [00:31<01:27,  4.11it/s]
 26%|██▌       | 127/485 [00:31<01:27,  4.07it/s]
 26%|██▋       | 128/485 [00:31<01:27,  4.09it/s]
 27%|██▋       | 129/485 [00:31<01:26,  4.11it/s]
 27%|██▋       | 130/485 [00:32<01:27,  4.06it/s]
 27%|██▋       | 131/485 [00:32<01:25,  4.12it/s]
 27%|██▋       | 132/485 [00:32<01:25,  4.14it/s]
 27%|██▋       | 133/485 [00:32<01:24,  4.14it/s]
 28%|██▊       | 134/485 [00:33<01:25,  4.12it/s]
 28%|██▊       | 135/485 [00:33<01:25,  4.11it/s]
 28%|██▊       | 136/485 [00:33<01:25,  4.08it/s]
 28%|██▊       | 137/485 [00:33<01:24,  4.10it/s]
 28%|██▊       | 138/485 [00:33<01:24,  4.10it/s]
 29%|██▊       | 139/485 [00:34<01:25,  4.06it/s]
 29%|██▉       | 140/485 [00:34<01:25,  4.04it/s]
 29%|██▉       | 141/485 [00:34<01:25,  4.04it/s]
 29%|██▉       | 142/485 [00:34<01:24,  4.04it/s]
 29%|██▉       | 143/485 [00:35<01:24,  4.03it/s]
 30%|██▉       | 144/485 [00:35<01:24,  4.03it/s]
 30%|██▉       | 145/485 [00:35<01:25,  3.99it/s]
 30%|███       | 146/485 [00:35<01:23,  4.05it/s]
 30%|███       | 147/485 [00:36<01:23,  4.06it/s]
 31%|███       | 148/485 [00:36<01:23,  4.05it/s]
 31%|███       | 149/485 [00:36<01:21,  4.12it/s]
 31%|███       | 150/485 [00:36<01:21,  4.13it/s]
 31%|███       | 151/485 [00:37<01:21,  4.10it/s]
 31%|███▏      | 152/485 [00:37<01:21,  4.06it/s]
 32%|███▏      | 153/485 [00:37<01:21,  4.09it/s]
 32%|███▏      | 154/485 [00:37<01:25,  3.89it/s]
 32%|███▏      | 155/485 [00:38<01:26,  3.84it/s]
 32%|███▏      | 156/485 [00:38<01:24,  3.90it/s]
 32%|███▏      | 157/485 [00:38<01:24,  3.88it/s]
 33%|███▎      | 158/485 [00:39<01:24,  3.85it/s]
 33%|███▎      | 159/485 [00:39<01:24,  3.86it/s]
 33%|███▎      | 160/485 [00:39<01:24,  3.85it/s]
 33%|███▎      | 161/485 [00:39<01:24,  3.83it/s]
 33%|███▎      | 162/485 [00:40<01:24,  3.80it/s]
 34%|███▎      | 163/485 [00:40<01:24,  3.81it/s]
 34%|███▍      | 164/485 [00:40<01:23,  3.85it/s]
 34%|███▍      | 165/485 [00:40<01:22,  3.89it/s]
 34%|███▍      | 166/485 [00:41<01:20,  3.95it/s]
 34%|███▍      | 167/485 [00:41<01:20,  3.97it/s]
 35%|███▍      | 168/485 [00:41<01:20,  3.95it/s]
 35%|███▍      | 169/485 [00:41<01:18,  4.03it/s]
 35%|███▌      | 170/485 [00:42<01:17,  4.07it/s]
 35%|███▌      | 171/485 [00:42<01:17,  4.03it/s]
 35%|███▌      | 172/485 [00:42<01:19,  3.93it/s]
 36%|███▌      | 173/485 [00:42<01:21,  3.81it/s]
 36%|███▌      | 174/485 [00:43<01:21,  3.82it/s]
 36%|███▌      | 175/485 [00:43<01:20,  3.83it/s]
 36%|███▋      | 176/485 [00:43<01:20,  3.85it/s]
 36%|███▋      | 177/485 [00:43<01:20,  3.83it/s]
 37%|███▋      | 178/485 [00:44<01:20,  3.80it/s]
 37%|███▋      | 179/485 [00:44<01:19,  3.86it/s]
 37%|███▋      | 180/485 [00:44<01:19,  3.82it/s]
 37%|███▋      | 181/485 [00:44<01:18,  3.88it/s]
 38%|███▊      | 182/485 [00:45<01:18,  3.88it/s]
 38%|███▊      | 183/485 [00:45<01:16,  3.96it/s]
 38%|███▊      | 184/485 [00:45<01:14,  4.04it/s]
 38%|███▊      | 185/485 [00:45<01:15,  3.95it/s]
 38%|███▊      | 186/485 [00:46<01:15,  3.97it/s]
 39%|███▊      | 187/485 [00:46<01:13,  4.05it/s]
 39%|███▉      | 188/485 [00:46<01:12,  4.09it/s]
 39%|███▉      | 189/485 [00:46<01:12,  4.06it/s]
 39%|███▉      | 190/485 [00:47<01:14,  3.96it/s]
 39%|███▉      | 191/485 [00:47<01:14,  3.93it/s]
 40%|███▉      | 192/485 [00:47<01:14,  3.93it/s]
 40%|███▉      | 193/485 [00:47<01:14,  3.91it/s]
 40%|████      | 194/485 [00:48<01:14,  3.91it/s]
 40%|████      | 195/485 [00:48<01:14,  3.88it/s]
 40%|████      | 196/485 [00:48<01:14,  3.88it/s]
 41%|████      | 197/485 [00:48<01:14,  3.89it/s]
 41%|████      | 198/485 [00:49<01:13,  3.89it/s]
 41%|████      | 199/485 [00:49<01:14,  3.84it/s]
 41%|████      | 200/485 [00:49<01:15,  3.79it/s]
 41%|████▏     | 201/485 [00:50<01:15,  3.79it/s]
 42%|████▏     | 202/485 [00:50<01:14,  3.82it/s]
 42%|████▏     | 203/485 [00:50<01:13,  3.86it/s]
 42%|████▏     | 204/485 [00:50<01:12,  3.86it/s]
 42%|████▏     | 205/485 [00:51<01:12,  3.88it/s]
 42%|████▏     | 206/485 [00:51<01:11,  3.91it/s]
 43%|████▎     | 207/485 [00:51<01:10,  3.93it/s]
 43%|████▎     | 208/485 [00:51<01:10,  3.91it/s]
 43%|████▎     | 209/485 [00:52<01:10,  3.89it/s]
 43%|████▎     | 210/485 [00:52<01:11,  3.85it/s]
 44%|████▎     | 211/485 [00:52<01:11,  3.84it/s]
 44%|████▎     | 212/485 [00:52<01:10,  3.87it/s]
 44%|████▍     | 213/485 [00:53<01:10,  3.88it/s]
 44%|████▍     | 214/485 [00:53<01:09,  3.89it/s]
 44%|████▍     | 215/485 [00:53<01:09,  3.87it/s]
 45%|████▍     | 216/485 [00:53<01:10,  3.83it/s]
 45%|████▍     | 217/485 [00:54<01:10,  3.82it/s]
 45%|████▍     | 218/485 [00:54<01:09,  3.84it/s]
 45%|████▌     | 219/485 [00:54<01:09,  3.82it/s]
 45%|████▌     | 220/485 [00:54<01:09,  3.81it/s]
 46%|████▌     | 221/485 [00:55<01:14,  3.55it/s]
 46%|████▌     | 222/485 [00:55<01:14,  3.54it/s]
 46%|████▌     | 223/485 [00:55<01:12,  3.61it/s]
 46%|████▌     | 224/485 [00:56<01:11,  3.66it/s]
 46%|████▋     | 225/485 [00:56<01:10,  3.70it/s]
 47%|████▋     | 226/485 [00:56<01:09,  3.74it/s]
 47%|████▋     | 227/485 [00:56<01:09,  3.74it/s]
 47%|████▋     | 228/485 [00:57<01:08,  3.75it/s]
 47%|████▋     | 229/485 [00:57<01:08,  3.74it/s]
 47%|████▋     | 230/485 [00:57<01:07,  3.80it/s]
 48%|████▊     | 231/485 [00:57<01:07,  3.78it/s]
 48%|████▊     | 232/485 [00:58<01:06,  3.81it/s]
 48%|████▊     | 233/485 [00:58<01:05,  3.84it/s]
 48%|████▊     | 234/485 [00:58<01:05,  3.83it/s]
 48%|████▊     | 235/485 [00:58<01:04,  3.86it/s]
 49%|████▊     | 236/485 [00:59<01:03,  3.91it/s]
 49%|████▉     | 237/485 [00:59<01:03,  3.94it/s]
 49%|████▉     | 238/485 [00:59<01:03,  3.90it/s]
 49%|████▉     | 239/485 [00:59<01:03,  3.90it/s]
 49%|████▉     | 240/485 [01:00<01:02,  3.93it/s]
 50%|████▉     | 241/485 [01:00<01:02,  3.92it/s]
 50%|████▉     | 242/485 [01:00<01:02,  3.89it/s]
 50%|█████     | 243/485 [01:01<01:01,  3.92it/s]
 50%|█████     | 244/485 [01:01<01:01,  3.94it/s]
 51%|█████     | 245/485 [01:01<01:00,  3.97it/s]
 51%|█████     | 246/485 [01:01<01:01,  3.91it/s]
 51%|█████     | 247/485 [01:02<01:00,  3.91it/s]
 51%|█████     | 248/485 [01:02<01:00,  3.89it/s]
 51%|█████▏    | 249/485 [01:02<01:00,  3.92it/s]
 52%|█████▏    | 250/485 [01:02<00:59,  3.95it/s]
 52%|█████▏    | 251/485 [01:03<00:59,  3.94it/s]
 52%|█████▏    | 252/485 [01:03<00:58,  3.97it/s]
 52%|█████▏    | 253/485 [01:03<00:58,  4.00it/s]
 52%|█████▏    | 254/485 [01:03<00:57,  4.02it/s]
 53%|█████▎    | 255/485 [01:04<00:57,  4.01it/s]
 53%|█████▎    | 256/485 [01:04<00:58,  3.94it/s]
 53%|█████▎    | 257/485 [01:04<00:57,  3.95it/s]
 53%|█████▎    | 258/485 [01:04<00:57,  3.97it/s]
 53%|█████▎    | 259/485 [01:05<00:56,  4.03it/s]
 54%|█████▎    | 260/485 [01:05<00:56,  3.99it/s]
 54%|█████▍    | 261/485 [01:05<00:56,  3.98it/s]
 54%|█████▍    | 262/485 [01:05<00:56,  3.94it/s]
 54%|█████▍    | 263/485 [01:06<00:56,  3.90it/s]
 54%|█████▍    | 264/485 [01:06<00:55,  3.95it/s]
 55%|█████▍    | 265/485 [01:06<00:56,  3.91it/s]
 55%|█████▍    | 266/485 [01:06<00:55,  3.92it/s]
 55%|█████▌    | 267/485 [01:07<00:55,  3.91it/s]
 55%|█████▌    | 268/485 [01:07<00:55,  3.89it/s]
 55%|█████▌    | 269/485 [01:07<00:55,  3.90it/s]
 56%|█████▌    | 270/485 [01:07<00:55,  3.88it/s]
 56%|█████▌    | 271/485 [01:08<00:54,  3.96it/s]
 56%|█████▌    | 272/485 [01:08<00:53,  3.97it/s]
 56%|█████▋    | 273/485 [01:08<00:52,  4.01it/s]
 56%|█████▋    | 274/485 [01:08<00:52,  3.99it/s]
 57%|█████▋    | 275/485 [01:09<00:52,  3.96it/s]
 57%|█████▋    | 276/485 [01:09<00:53,  3.94it/s]
 57%|█████▋    | 277/485 [01:09<00:52,  3.97it/s]
 57%|█████▋    | 278/485 [01:09<00:52,  3.93it/s]
 58%|█████▊    | 279/485 [01:10<00:52,  3.91it/s]
 58%|█████▊    | 280/485 [01:10<00:51,  3.96it/s]
 58%|█████▊    | 281/485 [01:10<00:51,  3.98it/s]
 58%|█████▊    | 282/485 [01:10<00:51,  3.91it/s]
 58%|█████▊    | 283/485 [01:11<00:51,  3.94it/s]
 59%|█████▊    | 284/485 [01:11<00:51,  3.91it/s]
 59%|█████▉    | 285/485 [01:11<00:50,  3.94it/s]
 59%|█████▉    | 286/485 [01:11<00:50,  3.91it/s]
 59%|█████▉    | 287/485 [01:12<00:50,  3.90it/s]
 59%|█████▉    | 288/485 [01:12<00:49,  3.95it/s]
 60%|█████▉    | 289/485 [01:12<00:49,  3.99it/s]
 60%|█████▉    | 290/485 [01:12<00:49,  3.97it/s]
 60%|██████    | 291/485 [01:13<00:49,  3.94it/s]
 60%|██████    | 292/485 [01:13<00:48,  3.95it/s]
 60%|██████    | 293/485 [01:13<00:48,  3.95it/s]
 61%|██████    | 294/485 [01:13<00:48,  3.94it/s]
 61%|██████    | 295/485 [01:14<00:48,  3.96it/s]
 61%|██████    | 296/485 [01:14<00:47,  3.94it/s]
 61%|██████    | 297/485 [01:14<00:48,  3.88it/s]
 61%|██████▏   | 298/485 [01:14<00:48,  3.87it/s]
 62%|██████▏   | 299/485 [01:15<00:48,  3.84it/s]
 62%|██████▏   | 300/485 [01:15<00:48,  3.82it/s]
 62%|██████▏   | 301/485 [01:15<00:47,  3.88it/s]
 62%|██████▏   | 302/485 [01:15<00:46,  3.94it/s]
 62%|██████▏   | 303/485 [01:16<00:46,  3.96it/s]
 63%|██████▎   | 304/485 [01:16<00:45,  3.94it/s]
 63%|██████▎   | 305/485 [01:16<00:46,  3.90it/s]
 63%|██████▎   | 306/485 [01:17<00:45,  3.90it/s]
 63%|██████▎   | 307/485 [01:17<00:45,  3.91it/s]
 64%|██████▎   | 308/485 [01:17<00:45,  3.91it/s]
 64%|██████▎   | 309/485 [01:17<00:45,  3.85it/s]
 64%|██████▍   | 310/485 [01:18<00:45,  3.88it/s]
 64%|██████▍   | 311/485 [01:18<00:44,  3.88it/s]
 64%|██████▍   | 312/485 [01:18<00:44,  3.86it/s]
 65%|██████▍   | 313/485 [01:18<00:44,  3.85it/s]
 65%|██████▍   | 314/485 [01:19<00:44,  3.82it/s]
 65%|██████▍   | 315/485 [01:19<00:44,  3.81it/s]
 65%|██████▌   | 316/485 [01:19<00:44,  3.84it/s]
 65%|██████▌   | 317/485 [01:19<00:43,  3.82it/s]
 66%|██████▌   | 318/485 [01:20<00:43,  3.84it/s]
 66%|██████▌   | 319/485 [01:20<00:42,  3.89it/s]
 66%|██████▌   | 320/485 [01:20<00:42,  3.93it/s]
 66%|██████▌   | 321/485 [01:20<00:41,  3.94it/s]
 66%|██████▋   | 322/485 [01:21<00:41,  3.95it/s]
 67%|██████▋   | 323/485 [01:21<00:41,  3.95it/s]
 67%|██████▋   | 324/485 [01:21<00:40,  3.96it/s]
 67%|██████▋   | 325/485 [01:21<00:40,  3.95it/s]
 67%|██████▋   | 326/485 [01:22<00:40,  3.94it/s]
 67%|██████▋   | 327/485 [01:22<00:40,  3.91it/s]
 68%|██████▊   | 328/485 [01:22<00:39,  3.96it/s]
 68%|██████▊   | 329/485 [01:22<00:39,  3.90it/s]
 68%|██████▊   | 330/485 [01:23<00:39,  3.95it/s]
 68%|██████▊   | 331/485 [01:23<00:39,  3.92it/s]
 68%|██████▊   | 332/485 [01:23<00:38,  3.95it/s]
 69%|██████▊   | 333/485 [01:23<00:38,  3.93it/s]
 69%|██████▉   | 334/485 [01:24<00:38,  3.95it/s]
 69%|██████▉   | 335/485 [01:24<00:38,  3.93it/s]
 69%|██████▉   | 336/485 [01:24<00:37,  3.95it/s]
 69%|██████▉   | 337/485 [01:24<00:37,  3.96it/s]
 70%|██████▉   | 338/485 [01:25<00:36,  3.99it/s]
 70%|██████▉   | 339/485 [01:25<00:36,  3.96it/s]
 70%|███████   | 340/485 [01:25<00:36,  3.98it/s]
 70%|███████   | 341/485 [01:25<00:35,  4.01it/s]
 71%|███████   | 342/485 [01:26<00:35,  3.99it/s]
 71%|███████   | 343/485 [01:26<00:35,  3.95it/s]
 71%|███████   | 344/485 [01:26<00:35,  3.94it/s]
 71%|███████   | 345/485 [01:26<00:35,  3.91it/s]
 71%|███████▏  | 346/485 [01:27<00:35,  3.92it/s]
 72%|███████▏  | 347/485 [01:27<00:35,  3.88it/s]
 72%|███████▏  | 348/485 [01:27<00:35,  3.85it/s]
 72%|███████▏  | 349/485 [01:28<00:35,  3.86it/s]
 72%|███████▏  | 350/485 [01:28<00:35,  3.86it/s]
 72%|███████▏  | 351/485 [01:28<00:34,  3.88it/s]
 73%|███████▎  | 352/485 [01:28<00:34,  3.83it/s]
 73%|███████▎  | 353/485 [01:29<00:34,  3.86it/s]
 73%|███████▎  | 354/485 [01:29<00:33,  3.89it/s]
 73%|███████▎  | 355/485 [01:29<00:33,  3.91it/s]
 73%|███████▎  | 356/485 [01:29<00:33,  3.89it/s]
 74%|███████▎  | 357/485 [01:30<00:33,  3.84it/s]
 74%|███████▍  | 358/485 [01:30<00:33,  3.78it/s]
 74%|███████▍  | 359/485 [01:30<00:32,  3.85it/s]
 74%|███████▍  | 360/485 [01:30<00:32,  3.85it/s]
 74%|███████▍  | 361/485 [01:31<00:31,  3.96it/s]
 75%|███████▍  | 362/485 [01:31<00:31,  3.94it/s]
 75%|███████▍  | 363/485 [01:31<00:30,  3.94it/s]
 75%|███████▌  | 364/485 [01:31<00:30,  3.97it/s]
 75%|███████▌  | 365/485 [01:32<00:30,  3.97it/s]
 75%|███████▌  | 366/485 [01:32<00:30,  3.93it/s]
 76%|███████▌  | 367/485 [01:32<00:30,  3.91it/s]
 76%|███████▌  | 368/485 [01:32<00:29,  3.91it/s]
 76%|███████▌  | 369/485 [01:33<00:29,  3.89it/s]
 76%|███████▋  | 370/485 [01:33<00:29,  3.89it/s]
 76%|███████▋  | 371/485 [01:33<00:29,  3.88it/s]
 77%|███████▋  | 372/485 [01:33<00:29,  3.88it/s]
 77%|███████▋  | 373/485 [01:34<00:28,  3.90it/s]
 77%|███████▋  | 374/485 [01:34<00:28,  3.91it/s]
 77%|███████▋  | 375/485 [01:34<00:28,  3.92it/s]
 78%|███████▊  | 376/485 [01:34<00:27,  3.91it/s]
 78%|███████▊  | 377/485 [01:35<00:27,  3.95it/s]
 78%|███████▊  | 378/485 [01:35<00:27,  3.96it/s]
 78%|███████▊  | 379/485 [01:35<00:26,  3.95it/s]
 78%|███████▊  | 380/485 [01:35<00:26,  3.90it/s]
 79%|███████▊  | 381/485 [01:36<00:26,  3.90it/s]
 79%|███████▉  | 382/485 [01:36<00:26,  3.88it/s]
 79%|███████▉  | 383/485 [01:36<00:26,  3.88it/s]
 79%|███████▉  | 384/485 [01:36<00:26,  3.88it/s]
 79%|███████▉  | 385/485 [01:37<00:25,  3.91it/s]
 80%|███████▉  | 386/485 [01:37<00:25,  3.95it/s]
 80%|███████▉  | 387/485 [01:37<00:24,  4.01it/s]
 80%|████████  | 388/485 [01:37<00:24,  3.97it/s]
 80%|████████  | 389/485 [01:38<00:24,  3.99it/s]
 80%|████████  | 390/485 [01:38<00:23,  4.02it/s]
 81%|████████  | 391/485 [01:38<00:23,  4.02it/s]
 81%|████████  | 392/485 [01:38<00:22,  4.05it/s]
 81%|████████  | 393/485 [01:39<00:22,  4.02it/s]
 81%|████████  | 394/485 [01:39<00:22,  4.00it/s]
 81%|████████▏ | 395/485 [01:39<00:22,  4.03it/s]
 82%|████████▏ | 396/485 [01:39<00:22,  3.97it/s]
 82%|████████▏ | 397/485 [01:40<00:22,  3.90it/s]
 82%|████████▏ | 398/485 [01:40<00:22,  3.89it/s]
 82%|████████▏ | 399/485 [01:40<00:22,  3.89it/s]
 82%|████████▏ | 400/485 [01:41<00:21,  3.89it/s]
 83%|████████▎ | 401/485 [01:41<00:21,  3.91it/s]
 83%|████████▎ | 402/485 [01:41<00:21,  3.90it/s]
 83%|████████▎ | 403/485 [01:41<00:21,  3.89it/s]
 83%|████████▎ | 404/485 [01:42<00:21,  3.85it/s]
 84%|████████▎ | 405/485 [01:42<00:20,  3.87it/s]
 84%|████████▎ | 406/485 [01:42<00:20,  3.85it/s]
 84%|████████▍ | 407/485 [01:42<00:20,  3.84it/s]
 84%|████████▍ | 408/485 [01:43<00:20,  3.73it/s]
 84%|████████▍ | 409/485 [01:43<00:20,  3.73it/s]
 85%|████████▍ | 410/485 [01:43<00:20,  3.74it/s]
 85%|████████▍ | 411/485 [01:43<00:19,  3.76it/s]
 85%|████████▍ | 412/485 [01:44<00:19,  3.78it/s]
 85%|████████▌ | 413/485 [01:44<00:19,  3.75it/s]
 85%|████████▌ | 414/485 [01:44<00:19,  3.74it/s]
 86%|████████▌ | 415/485 [01:44<00:18,  3.70it/s]
 86%|████████▌ | 416/485 [01:45<00:18,  3.69it/s]
 86%|████████▌ | 417/485 [01:45<00:18,  3.66it/s]
 86%|████████▌ | 418/485 [01:45<00:18,  3.69it/s]
 86%|████████▋ | 419/485 [01:46<00:17,  3.70it/s]
 87%|████████▋ | 420/485 [01:46<00:17,  3.70it/s]
 87%|████████▋ | 421/485 [01:46<00:18,  3.47it/s]
 87%|████████▋ | 422/485 [01:46<00:18,  3.48it/s]
 87%|████████▋ | 423/485 [01:47<00:17,  3.58it/s]
 87%|████████▋ | 424/485 [01:47<00:16,  3.66it/s]
 88%|████████▊ | 425/485 [01:47<00:16,  3.68it/s]
 88%|████████▊ | 426/485 [01:48<00:15,  3.70it/s]
 88%|████████▊ | 427/485 [01:48<00:15,  3.75it/s]
 88%|████████▊ | 428/485 [01:48<00:15,  3.80it/s]
 88%|████████▊ | 429/485 [01:48<00:14,  3.84it/s]
 89%|████████▊ | 430/485 [01:49<00:14,  3.85it/s]
 89%|████████▉ | 431/485 [01:49<00:13,  3.87it/s]
 89%|████████▉ | 432/485 [01:49<00:13,  3.88it/s]
 89%|████████▉ | 433/485 [01:49<00:13,  3.95it/s]
 89%|████████▉ | 434/485 [01:50<00:12,  3.96it/s]
 90%|████████▉ | 435/485 [01:50<00:12,  3.97it/s]
 90%|████████▉ | 436/485 [01:50<00:12,  3.93it/s]
 90%|█████████ | 437/485 [01:50<00:12,  3.93it/s]
 90%|█████████ | 438/485 [01:51<00:12,  3.88it/s]
 91%|█████████ | 439/485 [01:51<00:12,  3.80it/s]
 91%|█████████ | 440/485 [01:51<00:11,  3.80it/s]
 91%|█████████ | 441/485 [01:51<00:11,  3.80it/s]
 91%|█████████ | 442/485 [01:52<00:11,  3.85it/s]
 91%|█████████▏| 443/485 [01:52<00:10,  3.91it/s]
 92%|█████████▏| 444/485 [01:52<00:10,  3.90it/s]
 92%|█████████▏| 445/485 [01:52<00:10,  3.90it/s]
 92%|█████████▏| 446/485 [01:53<00:10,  3.85it/s]
 92%|█████████▏| 447/485 [01:53<00:09,  3.84it/s]
 92%|█████████▏| 448/485 [01:53<00:09,  3.83it/s]
 93%|█████████▎| 449/485 [01:53<00:09,  3.87it/s]
 93%|█████████▎| 450/485 [01:54<00:09,  3.88it/s]
 93%|█████████▎| 451/485 [01:54<00:08,  3.95it/s]
 93%|█████████▎| 452/485 [01:54<00:08,  3.98it/s]
 93%|█████████▎| 453/485 [01:54<00:08,  3.90it/s]
 94%|█████████▎| 454/485 [01:55<00:07,  3.92it/s]
 94%|█████████▍| 455/485 [01:55<00:07,  3.85it/s]
 94%|█████████▍| 456/485 [01:55<00:07,  3.81it/s]
 94%|█████████▍| 457/485 [01:56<00:07,  3.79it/s]
 94%|█████████▍| 458/485 [01:56<00:07,  3.76it/s]
 95%|█████████▍| 459/485 [01:56<00:06,  3.76it/s]
 95%|█████████▍| 460/485 [01:56<00:06,  3.76it/s]
 95%|█████████▌| 461/485 [01:57<00:06,  3.76it/s]
 95%|█████████▌| 462/485 [01:57<00:06,  3.81it/s]
 95%|█████████▌| 463/485 [01:57<00:05,  3.84it/s]
 96%|█████████▌| 464/485 [01:57<00:05,  3.87it/s]
 96%|█████████▌| 465/485 [01:58<00:05,  3.85it/s]
 96%|█████████▌| 466/485 [01:58<00:04,  3.86it/s]
 96%|█████████▋| 467/485 [01:58<00:04,  3.84it/s]
 96%|█████████▋| 468/485 [01:58<00:04,  3.82it/s]
 97%|█████████▋| 469/485 [01:59<00:04,  3.79it/s]
 97%|█████████▋| 470/485 [01:59<00:03,  3.79it/s]
 97%|█████████▋| 471/485 [01:59<00:03,  3.78it/s]
 97%|█████████▋| 472/485 [01:59<00:03,  3.71it/s]
 98%|█████████▊| 473/485 [02:00<00:03,  3.77it/s]
 98%|█████████▊| 474/485 [02:00<00:02,  3.81it/s]
 98%|█████████▊| 475/485 [02:00<00:02,  3.79it/s]
 98%|█████████▊| 476/485 [02:01<00:02,  3.81it/s]
 98%|█████████▊| 477/485 [02:01<00:02,  3.85it/s]
 99%|█████████▊| 478/485 [02:01<00:01,  3.90it/s]
 99%|█████████▉| 479/485 [02:01<00:01,  3.91it/s]
 99%|█████████▉| 480/485 [02:02<00:01,  3.88it/s]
 99%|█████████▉| 481/485 [02:02<00:01,  3.90it/s]
 99%|█████████▉| 482/485 [02:02<00:00,  3.91it/s]
100%|█████████▉| 483/485 [02:02<00:00,  3.90it/s]
100%|█████████▉| 484/485 [02:03<00:00,  3.92it/s]
100%|██████████| 485/485 [02:03<00:00,  3.94it/s]
[MoviePy] Done.
[MoviePy] >>>> Video ready: challenge_video_out_with_detection_bluecolor_22.mp4 

CPU times: user 1min 51s, sys: 17.7 s, total: 2min 9s
Wall time: 2min 3s
In [ ]: